web-dev-qa-db-ja.com

待つことなく非同期を使用する

関数を非同期にしたいので、次のようにasyncを追加するだけです。

public async static void something(){
}

戻り値の型がvoidであることがわかります。戻り値はvoidであるため、awaitは不要なので、この関数をブロックせずに非同期で呼び出したいだけです。

しかし、Visual Studio 2012はこれをコンパイルできません。awaitが恋しいと言っていますか?

asyncを使用せずに関数awaitを作成するサンプルを教えてください。

33
Eric Yin

多分あなたはasyncが何をするのか誤解していると思う。警告は正確です。メソッドasyncをマークしているが、awaitをどこにも使用しない場合、メソッド非同期になりません。呼び出すと、メソッド内のすべてのコードが同期的に実行されます。

また、async voidメソッドの使用を避けるようにしてください。これらのメソッドは例外の処理を困難にします。

33
svick