c# Task waitAll,WhenAll
2021-02-02 09:14
标签:logs ram sha arp 成就 new t 方便 worker 就会
wait 阻塞的 when是异步的非阻塞的。 上面是例子WhenAny 是任何一个任务完成就会执行 MessageBox.Show("ok"); 测试上面的例子等待3秒回OK。 如果换成WhenAll那你会等待90秒才会看到 MessageBox.Show("ok"); ContinueWith 就是任务完成后执行的方法体, 就是个Task. Task.WaitAll(tlist);意思是一样但是,线程会阻塞。因为 Task.WaitAll 不是一个异步或Task类型,而是一个常规方法体。 有了.Netframwork4.5的Task感觉比以前多线程简化很多也方便很多。基本可以抛弃 new Thread... 和BackgroundWorker了。 .Netframwork4.5里的Task.Run等效于 Task.Factory.StartNew 。Task.Factory.StartNew 在4.0里就有。 c# Task waitAll,WhenAll 标签:logs ram sha arp 成就 new t 方便 worker 就会 原文地址:https://www.cnblogs.com/lonelyxmas/p/11557820.html Task[] tlist = new Task[] { Task.Run(() => { Thread.Sleep(3000); }), Task.Factory.StartNew(() => { Thread.Sleep(90000); }) };
//Task.WaitAll(tlist);
// MessageBox.Show("ok ");
Task.WhenAny(tlist).ContinueWith((s)=>{
MessageBox.Show("ok");
return s;
});
上一篇:React顶层API
下一篇:winform中的小技巧【自用】
文章标题:c# Task waitAll,WhenAll
文章链接:http://soscw.com/index.php/essay/49898.html