C# multithreading
In C#, multithreading is the ability to execute multiple threads or threads of execution concurrently, allowing for more efficient use of system resources and faster program execution. Multithreading is an important aspect of modern programming, and C# provides several ways to achieve it.
The most common way to create a new thread in C# is by creating a new instance of the Thread
class and passing a delegate method that will be executed on the new thread. For example, the following code creates a new thread that prints "Hello, World!" to the console:
using System; using System.Threading; class Program { static void Main() { Thread t = new Thread(() => Console.WriteLine("Hello, World!")); t.Start(); } }
C# also provides the Task
class, which represents an asynchronous operation that can be run on a separate thread. The Task
class provides several methods for starting and controlling the execution of the task, including the Start
method, which starts the task on a new thread. For example, the following code creates a new task that prints "Hello, World!" to the console:
using System; using System.Threading.Tasks; class Program { static void Main() { Task task = Task.Factory.StartNew(() => Console.WriteLine("Hello, World!")); task.Wait(); } }
C# also provides several synchronization primitives, such as Mutex
, Semaphore
, and Monitor
, that can be used to coordinate access to shared resources between multiple threads.