Dot*_*Dot 1 c# multithreading task
当我写下面的代码时:
Task<string> task = Task.Factory.StartNew<string>(() => "first task")
.ContinueWith(t =>
{
Console.WriteLine(t.Result);
Console.WriteLine("second task");
});
Run Code Online (Sandbox Code Playgroud)
那是错的!
然后我把它改成这个:
var task = Task.Factory.StartNew<string>(() => "first task")
.ContinueWith(t =>
{
Console.WriteLine(t.Result);
Console.WriteLine("second task");
});
Run Code Online (Sandbox Code Playgroud)
一切都好!
为什么?
"任务任务"和"var任务"之间有什么不同?
你的代码行返回一个Task而不是一个Task<string>对象,因为你写的ContinueWith不是ContinueWith<string>.
一个可以在将来帮助您的提示:当您var在变量声明中替换类型时,可以将鼠标移到varVisual Studio中的关键字上,弹出窗口将显示代码中var 隐藏的实际类型.