2017-09-27 25 views
0

我想知道是否有人可以帮我找出代码正确使用像什么是等待Task.StartNew(()=> ...)的正确情况?

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

他们都很好。 “适当”是什么意思? – Enigmativity

+1

没有'Task.StartNew'这样的东西。尝试自己去看看。 – CodingYoshi

+0

看到这也许它可以帮助你[https://stackoverflow.com/questions/16488818/whats-the-difference-between-using-task-and-tasktresult-in-c-sharp] –

回答

3

没有!

除非你确切地知道你在做什么和为什么,否则你不应该使用Task.Factory.StartNewTask<T>.Factory.StartNewasync-await

上的任务的结果不awaitng并不意味着你不关心结果值。这意味着你不在乎它是否成功完成或完成。

+2

所以,如果你*确切地知道你在做什么以及为什么这样做,那么*有*用途?因此与你的第一句话相矛盾? – AakashM

+0

总是,@AakashM!但是,你肯定会得到你要求的。 –

相关问题