阅读量:0
在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
方法等待所有任务完成。这样就实现了多线程并发访问数据库的操作。