C# 等待/执行一个函数?

C# 等待/执行一个函数?,c#,task,C#,Task,我的Start()有一些非常慢的串行代码,所以我想我会把它放到一个任务中并等待它 await new Task(() => { c.Start(); }); 这会编译,但除非调用Start(),否则它似乎不会运行任务。现在不是简单的一行,我有3行。有没有办法把下面的内容写在一行里 var t = new Task(() => { c.Start(); }); t.Start(); await t; 您正在寻找等待任务。运行(c.Start)。如果您使用的是.NET 4.0(而不是

我的Start()有一些非常慢的串行代码,所以我想我会把它放到一个任务中并等待它

await new Task(() => { c.Start(); });
这会编译,但除非调用Start(),否则它似乎不会运行任务。现在不是简单的一行,我有3行。有没有办法把下面的内容写在一行里

var t = new Task(() => { c.Start(); });
t.Start();
await t;

您正在寻找
等待任务。运行(c.Start)
。如果您使用的是.NET 4.0(而不是4.5),则可以使用
wait Task.Factory.StartNew(c.Start)


首选
Task.Factory.StartNew
手动构造/启动
Task
,而首选
Task.Run
手动构建/启动
Task.Factory.StartNew
。每一个都使用一个更优化的实现,而不仅仅是简写。

您正在寻找的是
等待任务。运行(c.Start)
。如果您使用的是.NET 4.0(而不是4.5),则可以使用
wait Task.Factory.StartNew(c.Start)


首选
Task.Factory.StartNew
手动构造/启动
Task
,而首选
Task.Run
手动构建/启动
Task.Factory.StartNew
。每一个都使用一个更优化的实现,而不仅仅是简写。

var t=newtask(()=>{c.Start();});t、 Start();等待t?尝试以下操作:
等待任务。运行(c.Start)
。您应该更喜欢
Task.Run
而不是手动构造和启动,因为它在幕后执行了一些更好的优化。@cory您应该将其添加为回答
var t=new Task(()=>{c.Start();});t、 Start();等待t?尝试以下操作:
等待任务。运行(c.Start)
。您应该更喜欢
Task.Run
,而不是手动构造和启动,因为它在幕后执行了一些更好的优化。@cory您应该添加它作为答案