我有一个执行大量数据库工作的 Winforms 应用程序。它做了很多读取和一些记录的插入。该操作最多可能需要 30 秒到一分钟,具体取决于数据库的大小。现在,我的程序运行良好。
我的问题是,当我的程序执行此操作时,我的 UI 线程被阻塞,直到数据库完成。我想将数据库函数放入一个线程中,但是,根据这篇 MSDN 文章,ADO.NET 不是线程安全的。
有没有办法在我的用户界面上提供进度条或以某种方式解决“ADO.NET 不是线程安全的”?也许要编写我自己的继承类SqlDataReader
或SqlConnection
使其成为线程安全的。这甚至可能吗?