実行に時間がかかるメソッドがあります。DB を呼び出し、特定の計算を同期的に行います。
public static MyResult MyMethod(int param1, int param2)
{
// run a DB query, wait for result, make calculations...
...
}
「await」キーワードを使用して 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));
}
では、どのオプションが望ましいのでしょうか?またその理由は? ご覧のとおり、違いは「async」キーワードと「await」キーワードの有無だけです。
ありがとうございました!