我有需要长时间运行的方法:它调用数据库,并让某些计算同步:如果可能,我应该省略异步/等待吗?
public static MyResult MyMethod(int param1, int param2)
{
// run a DB query, wait for result, make calculations...
...
}
我想编写一个包装它,能够从我的WinForms与“UI使用等待'关键字。为此,我创建了另一个方法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));
}
那么,哪个选项是可取的,为什么?正如你所看到的,不同之处在于存在/不存在“异步”和“等待”关键字。
谢谢!