Q:

Will a single task in C# be executed in parallel on a multi-core system?

I am just finding my way around parallel programming in C# and understood the significance of cores and true parallel programming.
But I still have a question: 
Say I have a long running task does that mean this will be executed using threads from thread pool and in different cores for true parallel programming. 
Or does it depend on the actual delegate that is passed onto the task?
I Hope my question is clear.

A:

The delegate itself makes no difference. It is the TaskScheduler that matters.
The default TaskScheduler will run them via the ThreadPool.. to have them run synchronously, you would pass in a TaskScheduler instance that is currently being used.. such as the static TaskScheduler.FromCurrentSynchronizationContext.

