在C#中,如果你想在多線程環境下打印,可以使用Parallel
類或者Task
類。這里有兩個例子展示如何使用這兩種方法實現多線程打印。
例1:使用Parallel類
using System;
using System.Threading.Tasks;
class Program
{
static void Main()
{
int numberOfThreads = 5;
Parallel.For(0, numberOfThreads, i =>
{
PrintNumber(i);
});
}
static void PrintNumber(int number)
{
Console.WriteLine($"Thread {Environment.CurrentManagedThreadId()} - Number: {number}");
}
}
例2:使用Task類
using System;
using System.Threading.Tasks;
class Program
{
static async Task Main()
{
int numberOfThreads = 5;
await Task.WhenAll(Enumerable.Range(0, numberOfThreads).Select(i => PrintNumberAsync(i)));
}
static async Task PrintNumberAsync(int number)
{
await Task.Delay(100); // 模擬耗時操作
Console.WriteLine($"Thread {Environment.CurrentManagedThreadId()} - Number: {number}");
}
}
在這兩個例子中,我們都創建了5個線程來并發地打印數字。第一個例子使用Parallel.For
循環,第二個例子使用Task.WhenAll
方法配合Enumerable.Range
和Select
來創建任務列表。注意,在第二個例子中,我們使用了async
和await
關鍵字來確保線程在執行PrintNumberAsync
方法時不會阻塞主線程。