C# でゲームを作っていて、ちょっとした遅延処理を書きたくなったので。
Task.Run(() => {
Thread.Sleep(200);
Console.WriteLine("遅延させたい処理。");
});
5.0 以降には async/await
という機能もありますが、ドキュメントを読んだ感じ、あちらはもう少し複雑な処理向けという気がしました。
(16/04/08 追記) @kiichi54321 さんよりコメントをいただきました。async
と await
、わりとカジュアルな使い方もできるんですね。
Task.Run(async () => {
await Task.Delay(200);
Console.WriteLine("遅延させたい処理。");
});
async
がメソッドなりラムダ式を「非同期に実行する」というマーカーの役割をしていて、その中の実際に非同期にしたい処理に await
を付けると、以降の処理が await
の結果を待ってくれる感じみたいです。
ここ の第二回の記事とかもとても参考になりました。
ご指摘ありがとうございました。