我想知道是否有人可以帮我找出正确使用
之类的代码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 -------------
有人能为我提供一个真实的例子,说明何时有用?
答案 0 :(得分:3)
无!
除非您确切知道自己在做什么以及为什么这样做,否则永远不要将Task.Factory.StartNew
或Task<T>.Factory.StartNew
与async-await
一起使用。
对任务结果没有awaitng并不意味着你不关心结果值。这意味着你不关心它是否成功完成,或者即使它完成了。