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

c#高并发

作者:血染胸毛   发布日期:2025-06-16   浏览:23

using System;
using System.Collections.Concurrent;
using System.Linq;
using System.Threading.Tasks;

class Program
{
    static void Main(string[] args)
    {
        // 使用 ConcurrentBag 来存储结果,它是线程安全的集合
        ConcurrentBag<int> results = new ConcurrentBag<int>();

        // 创建一个包含10个任务的任务列表
        Task[] tasks = Enumerable.Range(0, 10).Select(i => Task.Run(() =>
        {
            // 模拟一些并发操作
            int result = DoWork(i);
            // 线程安全地将结果添加到集合中
            results.Add(result);
        })).ToArray();

        // 等待所有任务完成
        Task.WaitAll(tasks);

        // 输出结果
        foreach (var result in results)
        {
            Console.WriteLine(result);
        }
    }

    static int DoWork(int input)
    {
        // 模拟一些耗时的操作
        Task.Delay(100).Wait();
        return input * input;
    }
}

解释说明:

  1. ConcurrentBag:这是一个线程安全的集合,适用于多线程环境。它允许多个线程同时添加和读取数据,而不需要额外的锁定机制。
  2. Task.Run:用于启动一个新的任务(线程),这些任务会在后台线程池中执行,从而实现并发处理。
  3. Task.WaitAll:等待所有任务完成后再继续执行后续代码,确保所有并发操作都已完成。
  4. DoWork 方法:模拟了一个耗时的操作,并返回计算结果。

通过这种方式,可以在 C# 中实现高并发处理,确保线程安全并有效利用多核 CPU 的性能。

上一篇:c# rtsp

下一篇:c# if else

大家都在看

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 中文站