// 方式一:使用Thread类
using System;
using System.Threading;
class Program
{
static void Main()
{
Thread thread = new Thread(new ThreadStart(DoWork));
thread.Start();
Console.WriteLine("主线程继续执行...");
thread.Join(); // 等待子线程结束
Console.WriteLine("子线程已结束");
}
static void DoWork()
{
Console.WriteLine("子线程正在工作...");
Thread.Sleep(1000); // 模拟耗时操作
Console.WriteLine("子线程工作完成");
}
}
// 方式二:使用ThreadPool类
using System;
using System.Threading;
class Program
{
static void Main()
{
ThreadPool.QueueUserWorkItem(new WaitCallback(DoWork));
Console.WriteLine("主线程继续执行...");
Thread.Sleep(2000); // 主线程等待一段时间
Console.WriteLine("主线程结束");
}
static void DoWork(object state)
{
Console.WriteLine("线程池中的线程正在工作...");
Thread.Sleep(1000); // 模拟耗时操作
Console.WriteLine("线程池中的线程工作完成");
}
}
// 方式三:使用Task类
using System;
using System.Threading.Tasks;
class Program
{
static void Main()
{
Task task = Task.Run(() => DoWork());
Console.WriteLine("主线程继续执行...");
task.Wait(); // 等待任务完成
Console.WriteLine("任务已结束");
}
static void DoWork()
{
Console.WriteLine("任务正在执行...");
Task.Delay(1000).Wait(); // 模拟耗时操作
Console.WriteLine("任务执行完成");
}
}
// 方式四:使用async/await关键字
using System;
using System.Threading.Tasks;
class Program
{
static async Task Main()
{
Task task = DoWorkAsync();
Console.WriteLine("主线程继续执行...");
await task; // 异步等待任务完成
Console.WriteLine("任务已结束");
}
static async Task DoWorkAsync()
{
Console.WriteLine("异步任务正在执行...");
await Task.Delay(1000); // 模拟耗时操作
Console.WriteLine("异步任务执行完成");
}
}
Laravel PHP 深圳智简公司。版权所有©2023-2043 LaravelPHP 粤ICP备2021048745号-3
Laravel 中文站