【发布时间】:2017-09-27 03:56:15
【问题描述】:
我想知道是否有人可以帮助我找出像
这样的代码的正确用法var result = await Task.StartNew(() => ...);
或
var result = await Task<T>.StartNew(() => ...);
据我了解,简单地拥有是没有意义的
await Task.StartNew(() => ...);
或
await Task<T>.StartNew(() => ...);
因为如果您不需要结果,那么您不妨一劳永逸
Task.StartNew(() => ...)
或
Task.StartNew<T>(() => ...)
哪个像
Thread A | ----- Stuff before the Task.StartNew ---- | ---- Stuff after the Task.StartNew ------------------
Thread B | ------------ ??? ------------------------ | The () => .... inside the Task.StartNew -------------
谁能给我一个真实的例子,说明这在什么时候有用?
【问题讨论】:
-
他们看起来都很好。 “适当”是什么意思?
-
没有
Task.StartNew这样的东西。自己试试看。 -
看看这个也许对你有帮助[stackoverflow.com/questions/16488818/…
-
await是一种表示“在 this 结果可用之前,当前线程没有有用的工作要做”的方式。启动一个新的Task是一种将工作推到(可能)另一个线程上的方法,以免在执行该工作时占用当前线程。我想不出很多方法可以将这两个概念以一种有意义的方式联系在一起。
标签: c# .net multithreading asynchronous async-await