C#中的单个任务是否会在多核系统上并行执行?

时间:2013-10-02 04:14:06

标签: c# multithreading task-parallel-library

我只是在C#中找到并行编程的方法,并理解内核的重要性和真正的并行编程。

但我还有一个问题:

假设我有一个长时间运行的任务,这意味着这将使用线程池和不同内核中的线程执行,以实现真正的并行编程。

或者它取决于传递给任务的实际委托?

我希望我的问题很明确。

2 个答案:

答案 0 :(得分:2)

代表本身没有区别。重要的是TaskScheduler

默认TaskScheduler将通过ThreadPool ..运行它们以使它们同步运行,您将传入当前正在使用的TaskScheduler实例..例如静态TaskScheduler.FromCurrentSynchronizationContext

答案 1 :(得分:1)

真正的并行编程需要多个内核,因为线程必须在不同的线程上执行才能真正并行运行。在单核系统中,您只能实现伪并行,因为不同的脚踏必须通过分配的时隙共享内核。当前线程在单核上运行时,其他踏板正在等待。