在C#中,可以使用System.Threading
命名空間中的類來處理多線程操作。以下是一個簡單的示例,展示了如何使用多線程來執行兩個任務:
using System;
using System.Threading;
class Program
{
static void Main()
{
// 創建一個Thread對象,表示一個新線程
Thread thread1 = new Thread(new ThreadStart(Task1));
Thread thread2 = new Thread(new ThreadStart(Task2));
// 開始新線程
thread1.Start();
thread2.Start();
// 等待線程執行完成
thread1.Join();
thread2.Join();
Console.WriteLine("所有線程執行完畢");
}
static void Task1()
{
for (int i = 0; i < 5; i++)
{
Console.WriteLine("線程1: " + i);
Thread.Sleep(1000); // 模擬耗時操作
}
}
static void Task2()
{
for (int i = 0; i < 5; i++)
{
Console.WriteLine("線程2: " + i);
Thread.Sleep(1000); // 模擬耗時操作
}
}
}
在這個示例中,我們創建了兩個新線程thread1
和thread2
,分別執行Task1
和Task2
方法。Task1
和Task2
方法使用for
循環輸出一些文本并模擬耗時操作。通過調用Start()
方法,我們啟動了這兩個線程。Join()
方法用于等待線程執行完成。
除了使用Thread
類外,還可以使用Task
類來處理多線程操作。Task
類是System.Threading.Tasks
命名空間中的類,它提供了更高級的線程管理功能。以下是使用Task
類的示例:
using System;
using System.Threading.Tasks;
class Program
{
static void Main()
{
// 創建兩個Task對象,表示兩個異步任務
Task task1 = Task.Run(Task1);
Task task2 = Task.Run(Task2);
// 等待任務執行完成
Task.WaitAll(task1, task2);
Console.WriteLine("所有任務執行完畢");
}
static void Task1()
{
for (int i = 0; i < 5; i++)
{
Console.WriteLine("線程1: " + i);
Thread.Sleep(1000); // 模擬耗時操作
}
}
static void Task2()
{
for (int i = 0; i < 5; i++)
{
Console.WriteLine("線程2: " + i);
Thread.Sleep(1000); // 模擬耗時操作
}
}
}
在這個示例中,我們使用Task.Run()
方法創建了兩個異步任務task1
和task2
,分別執行Task1
和Task2
方法。Task.WaitAll()
方法用于等待所有任務執行完成。