溫馨提示×

c#多線程并發訪問數據庫怎么實現

小億
433
2024-02-19 16:59:44
欄目: 編程語言

在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方法等待所有任務完成。這樣就實現了多線程并發訪問數據庫的操作。

0
亚洲午夜精品一区二区_中文无码日韩欧免_久久香蕉精品视频_欧美主播一区二区三区美女