在C#中,可以使用Task
和async/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"]}");
}
}
}
}
}
}
在上面的示例中,我們通過Task
和async/await
關鍵字創建了兩個并發任務,這兩個任務會同時訪問數據庫并執行查詢操作。在AccessDatabase
方法中,我們打開數據庫連接,執行查詢并輸出查詢結果。在Main
方法中,我們使用Task.WhenAll
方法等待所有任務完成。這樣就實現了多線程并發訪問數據庫的操作。