执行Start()方法之前不会执行任务代码
// 返回值类型为string的Task
Task<string> task;
// 未指定返回值类型的Task
Task task2;
// 不执行Start()之前不会执行Func
task = new Task<string>(() =>
{
return "str";
});
task.Start();
// 获取Task的返回值
string str = task.Result;
// task执行完成后执行的函数,xxx是task
task.ContinueWith((xxx) => {
Console.WriteLine(xxx.Result);
});
// 立即执行Func并返回Task对象
task2 = Task.Run<string>(() =>
{
return "str";
});
// 因为Task已经执行,所以再调用Start会报错
task2.Start();
// task2未指定返回值类型,这行代码无法编译
str = task2.Result;