こんにちは
現在、GUIがフリーズしないようにSystem.Threading.Thread.Sleep()の代わりに
public async void SleepAsync(int milliseconds) { await Task.Delay(milliseconds); }
と書いて sleep()の代わりに使っているのですが
while() { SleepAsync(2000); console.WriteLine("待機終了"); }
と書いても2秒待たずに、待機終了 と表示されます。
一方で
while (true) { Task.Run(async () => { await Task.Delay(2000); Console.WriteLine("待機終了"); }); }
このように遅延処理?で書くと、最初の一回だけ2秒待機して、そのあとは遅延されません
sleep()をしたいだけなのに一体なにが起こっているのでしょうか・・・?
回答3件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2017/08/26 16:08