我有一个需要很长时间才能运行的方法:它调用数据库并同步进行某些计算:
public static MyResult MyMethod(int param1, int param2)
{
// run a DB query, wait for result, make calculations...
...
}
我想为它编写一个包装器,以便能够从我的 WinForms UI 中使用“await”关键字来使用它。为此,我创建了另一个方法 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”关键字的存在/不存在。
谢谢!