非同期方法でそれを実行するための最良の形で何違い
public void MyMethod()
{
// do some stuff
}
public Task MyMethodAsync()
{
//run MyMethod asynchronously
}
...のは、私はこのような2つのメソッドを持っていると仮定しましょうか?この
public Task MyMethodAsync()
{
return Task.Run(() => MyMethod());
}
またはこのようなよう
?
public async Task MyMethodAsync()
{
await Task.Run(() => MyMethod());
}
これは実際には非同期ではなく、別のスレッドで実行しているだけです。あなたが待っている非同期メソッドで実際のIOバインドされた作業をしていれば、それを同期化することができます。 – juharr
'Async'メソッドをそのまま使用して、消費者が望むならそれを待たせる。他のものを守っているだけの砂糖です。 – Jonesopolis
私はMyMethodAsyncをまったく作っておらず、呼び出し側に 'Task.Run(()=> myClass.MyMethod());'呼び出しをさせてください。 「[fake async](http://blog.stephencleary.com/2013/10/taskrun-etiquette-and-proper-usage.html)」メソッドを作成するのは良い方法ではありません。 –