阅读量:0
在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
方法时不会阻塞主线程。