The Microsoft .NET Framework offers several options for starting a task on a single thread:
Call the method that runs the task asynchronously by using a delegate. This is the easiest method to start a thread—but it is also the one that offers the least control.
Use one of the special parallelization methods in the Parallel class, such as Parallel.For or Parallel.ForEach.
Create a LINQ query and parallelize it by adding AsParallel.
In Windows Forms applications, you can use the BackgroundWorker component. This helps with updating the user interface because in Windows Forms applications—and Windows Presentation Foundation (WPF) applications—you can access UI controls only from the thread on which those controls ...