在C#4.0中,我们已经Task在System.Threading.Tasks命名空间.之间有什么真正的改变Thread和Task.我为了学习而做了一些示例程序(帮助从MSDN获取)
Parallel.Invoke
Parallel.For
Parallel.ForEach
Run Code Online (Sandbox Code Playgroud)
但有很多疑问,因为这个想法并不那么清楚.
我最初在Stackoverflow中搜索了类似类型的问题但可能是这个问题标题我无法得到相同的.如果有人知道之前发布的相同类型的问题,请提供链接的参考.
我是并行编程的新手..NET中有两个类:Task和Thread.
所以,问题是:这些课程有什么区别?何时更好地使用Thread何时Task?
据我所知,Task和Thread之间的区别在于,任务发生在线程池中,而线程是我需要自己管理的东西..(并且该任务可以取消并返回到线程池中他的任务结束)
但在一些博客中,我读到如果操作系统需要创建任务并创建thread =>,那么创建(和销毁)任务将更容易.
有人可以解释为什么创建任务很简单那个线程?
(或许我在这里遗漏了一些东西......)
我想知道在.Net中创建托管线程(通过调用Thread.Start())是否会导致在后台创建一个本机线程?那么托管线程是否有相应的本机线程?如果是,当托管线程等待或休眠时,是否意味着相应的本机线程也在等待或休眠?