认为任务通常是比线程更好的选择,因为它们避免浪费操作系统线程并提供更多编程控制,但我想知道实际上有一个用例,其中任务比线程更糟糕(因此应该使用线程)?
答案 0 :(得分:1)
即将执行的任务将在线程上下文中执行。来自.NET线程池的线程将用于执行任务。话虽如此,他们之间没有任何比较。
具体来说,只要存在空闲线程,任务就会被分配给要执行的线程池的线程。如果没有任何可用线程,则该任务将被放入队列中,等待其中一个使用的线程空闲,并将其分配给该线程(如果该任务是队列中的第一个...) 。如果任务将在队列中等待很长时间(此时有一个特定的时间间隔,但此时我不记得它),那么将创建一个新线程,以便为此任务提供服务。