Laravel  
laravel
文档
数据库
架构
入门
php技术
    
Laravelphp
laravel / php / java / vue / mysql / linux / python / javascript / html / css / c++ / c#

c#多线程实现的四种方式

作者:冰残°零度伤   发布日期:2025-07-01   浏览:3

// 方式一:使用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("异步任务执行完成");
    }
}

上一篇:c# savefiledialog

下一篇:c# cancellationtokensource

大家都在看

c# 二进制

c# tcp client

c# type.gettype

c# sqlconnection

.net和c#

c#游戏开发

c#网络编程

c# rectangle

c# if else

c#高并发

Laravel PHP 深圳智简公司。版权所有©2023-2043 LaravelPHP 粤ICP备2021048745号-3

Laravel 中文站