C# 提供了多种机制来支持异步编程和多线程,其中Thread、ThreadPool 和Task 是最为常用的三种。
Thread
类位于System.Threading
命名空间中,是 C# 中最基本的多线程实现方式。每个Thread
对象都代表一个线程,可以独立于主线程执行。
using System;
using System.Threading;
classProgram
{
static void Main(string[] args)
{
Thread thread = new Thread(DoWork);
thread.Start();
Console.WriteLine("主线程继续执行...");
}
static void DoWork()
{
Console.WriteLine("线程工作开始...");
// 模拟耗时操作
Thread.Sleep(2000);
Console.WriteLine("线程工作结束...");
}
}
ThreadPool
是一个线程池,位于System.Threading
命名空间中。它提供了一组工作线程,可以重复使用这些线程来执行多个任务,从而减少线程创建和销毁的开销。
using System;
using System.Threading;
classProgram
{
static void Main(string[] args)
{
ThreadPool.QueueUserWorkItem(DoWork);
Console.WriteLine("主线程继续执行...");
}
static void DoWork(object state)
{
Console.WriteLine("线程池工作开始...");
// 模拟耗时操作
Thread.Sleep(2000);
Console.WriteLine("线程池工作结束...");
}
}
Task
类位于System.Threading.Tasks
命名空间中,是 C# 异步编程的核心。它提供了一种更高级的异步编程模型,可以简化异步操作的编写和管理。
using System;
using System.Threading.Tasks;
classProgram
{
static async Task Main(string[] args)
{
Task task = Task.Run(() => DoWork());
Console.WriteLine("主线程继续执行...");
await task;
Console.WriteLine("任务执行完毕...");
}
static void DoWork()
{
Console.WriteLine("任务开始...");
// 模拟耗时操作
Task.Delay(2000).Wait();
Console.WriteLine("任务结束...");
}
}
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。