c#多线程并发访问数据库怎么实现

1510
2024/1/20 16:59:44
栏目: 编程语言
开发者测试专用服务器限时活动,0元免费领,库存有限,领完即止! 点击查看>>

在C#中,可以使用Taskasync/await关键字来实现多线程并发访问数据库。以下是一个简单的示例代码:

using System;
using System.Threading.Tasks;
using System.Data.SqlClient;

class Program
{
    static async Task Main(string[] args)
    {
        string connString = "YOUR_CONNECTION_STRING";
        
        // 创建多个并发任务
        Task task1 = AccessDatabase(connString, "Task 1");
        Task task2 = AccessDatabase(connString, "Task 2");
        
        // 等待所有任务完成
        await Task.WhenAll(task1, task2);
        
        Console.WriteLine("All tasks completed!");
    }

    static async Task AccessDatabase(string connString, string taskName)
    {
        using (SqlConnection conn = new SqlConnection(connString))
        {
            await conn.OpenAsync();
            
            // 在此处执行数据库操作
            // 例如:执行查询
            using (SqlCommand cmd = new SqlCommand("SELECT * FROM YourTable", conn))
            {
                using (SqlDataReader reader = await cmd.ExecuteReaderAsync())
                {
                    while (await reader.ReadAsync())
                    {
                        Console.WriteLine($"{taskName} - {reader["Column1"]}");
                    }
                }
            }
        }
    }
}

在上面的示例中,我们通过Taskasync/await关键字创建了两个并发任务,这两个任务会同时访问数据库并执行查询操作。在AccessDatabase方法中,我们打开数据库连接,执行查询并输出查询结果。在Main方法中,我们使用Task.WhenAll方法等待所有任务完成。这样就实现了多线程并发访问数据库的操作。

辰迅云「云服务器」,即开即用、新一代英特尔至强铂金CPU、三副本存储NVMe SSD云盘,价格低至29元/月。点击查看>>

推荐阅读: c#中serializable的用法是什么