在线程里,.Net Framework 4.0开始支持Task.Factory.StartNew,.Net Framework 4.5后开始支持Task.Run。
Task.Factory.StartNew经过简化成了Task.Run,注意的是Factory.StartNew的方法参数种类更丰富,可以完成多样的需求。
在选择上,如果创建的线程需要长时间运行的话那就选择Task.Factory.StartNew。
一:使用
Task.Run(() =>{......});
Task.Factory.StartNew(() =>{......});
二:扩展(等待线程)
await:目的是创建的线程完成后其他的线程才能继续执行。
private static async void NewTask() //只能是用在异步的方法中,使用时配合async。 { await Task.Run(() => //Task.Factory.StartNew同样适用 { Console.WriteLine("创建的线程:" + Thread.CurrentThread.ManagedThreadId); }); }
也可以这么使用:
var newTask = Task.Run(() => { Console.WriteLine("进入 线程" + Thread.CurrentThread.ManagedThreadId); }); Task.WaitAll(newTask);