我想在两个操作之间设置一个延迟,而不让线程保持忙碌
workA();
Thread.Sleep(1000);
workB();线程必须在workA之后退出,并在一段延迟后执行workB (可能在新线程中)。
我想知道这个伪代码有没有可能
workA();
Thread.BeginSleep(1000, workB); // callback在.NET 2.0中编辑我的程序
编辑2: System.Timers.Timer.Elapsed事件将在1000毫秒后引发事件。我不知道计时器线程是否会忙1000毫秒。(所以我不会获得线程经济)
发布于 2013-04-10 19:12:26
你的意思是:
Task.Delay(1000).ContinueWith(t => workB());或者,手动创建Timer。
注意:这在async代码中看起来更漂亮:
async Task Foo() {
workA();
await Task.Delay(1000);
workB();
}编辑:在你的.NET 2.0更新中,你必须设置你自己的带有回调的Timer。有一个nuget包System.Threading.Tasks可以将Task应用编程接口降低到.NET 3.5,但是a:它没有到2.0,b:我认为它不包括Task.Delay。
https://stackoverflow.com/questions/15924221
复制相似问题