1
我有一个Winforms应用程序,可以完成一些重要的数据库工作。它做了大量的阅读和插入记录。根据数据库的大小,该操作最多可能需要30秒到1分钟。现在,我的程序运行良好。C#中线程安全的数据库访问#
我的问题是,虽然我的程序正在这样做,我的UI线程被阻止,直到数据库的东西完成。我想将数据库函数放到一个线程中,但根据this MSDN article,ADO.NET不是线程安全的。
有没有一种方法可以在我的用户界面上提供进度条,或者在“ADO.NET不是线程安全的”方式下提供进度条?也许编写自己的继承SqlDataReader
或SqlConnection
的类以使其线程安全。这甚至有可能吗?
哪个数据库? Access与MS-SQL有一组不同的问题。 –
@HenkHolterman - 它实际上可以跨越三种不同的数据库服务器,SQL Server 2000,Microsoft Access和MySQL。 – Icemanind
这可能会让事情变得复杂。你如何处理密钥,他们可以成为GUID? –