.net - 多线程和数据库连接

标签 .net mysql design-patterns

所以我正在尝试找出有关我的数据库连接的最佳实践。我有一个大型 .NET GUI 作为 MySQL 数据库的前端。目前,我在应用程序加载时打开一个连接,并将其用于我需要的任何交互。但是,整个 GUI 是单线程的。

当我开始为大型查询和执行添加 BackgroundWorkers 时,我担心我的开放连接。例如,我知道我一次只能在该连接上打开一个 dataReader。对于多线程,用户可以尝试实例化更多线程。

为应用程序保持一个打开的连接与为每次交互打开一个新连接的优点/缺点是什么?

这有哪些常见的设计模式?

谢谢-

乔纳森

最佳答案

使用线程安全的连接池并保持线程特定的连接(不要跨线程共享连接)。

我相信 MySQL .NET 连接框架是内置的。如果您对所有连接使用相同的连接字符串,只需将“pooling=true”添加到您的连接字符串。 (Source -- 没有超链接片段,所以在表中查找“pooling”)

这种方法的缺点是一些线程会阻塞,直到连接可用。您需要在程序结构中考虑到这一点。

关于.net - 多线程和数据库连接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2311974/

相关文章:

c# - 从未同步的代码块调用了对象同步方法

php - 试图获得小于使用 pdo 的值

mysql - 使用别名的计算(从子查询到同一个表)mySQL

java - 从父类访问子类是否被视为反模式

c# - 是否可以防止 Visual Studio 在 BackgroundWorker.DoWork 内出现异常时中断

c# - 使用 ApplicationSettingsBase 存储通用 List<CustomObject>

mysql - 如何找到该用户的mysqldump操作权限

java - 将标志传递给对象的正确设计模式

java - java中if比较的长列表

.net - 按名称选择特定打印机 VB