У меня есть метод, который занимает много времени: он вызывает БД и выполняет определенные вычисления синхронно:
public static MyResult MyMethod(int param1, int param2)
{
// run a DB query, wait for result, make calculations...
...
}
Я хочу написать обертку для него, чтобы иметь возможность использовать его из моих WinFormsПользовательский интерфейс с ключевым словом "ожидание".Для этого я создаю другой метод, MyResultAsync.У меня есть выбор, как именно это написать:
// option 1
public async static Task<MyResult> MyResultAsync(int param1, int param2)
{
return await TaskEx.Run(() => MyMethod(param1, param2));
}
// option 2
public static Task<MyResult> MyResultAsync(int param1, int param2)
{
return TaskEx.Run(() => MyMethod(param1, param2));
}
Итак, какой вариант предпочтительнее и почему?Как видите, разница только в наличии / отсутствии ключевых слов async и await.
Спасибо!