多线程环境下的 C#/SQLServer 数据库连接
C#/SQLServer Database Connections in multithreaded environment
我有一个多线程application.Each线程会负责上传数据给一个SQLDatabase.My问题是,这样做的正确解决方案是什么?每个线程都应该打开自己的新数据库连接,或者应该使用一些单例模式来创建数据库。或者请让我知道是否有其他最佳方法。任何代码示例都将受到高度赞赏。
您不必打开多个连接即可一次多次调用您的 WCF 服务。您所要做的就是使用异步方式调用它。
例如,您可以使用 Parrallel.ForEach() 而不是创建自己的线程。
public void UploadData(List<Data> allDataToUpload)
{
Parallel.ForEach(allDataToUpload, data =>
{
_yourService.Upload(data);
});
}
此外,如果您对线程不是很熟悉,我建议使用 Microsoft 自 .net 4.5 以来提供的所有新工具,如 async、await 和库 Task,而不是管理您自己的线程。
我有一个多线程application.Each线程会负责上传数据给一个SQLDatabase.My问题是,这样做的正确解决方案是什么?每个线程都应该打开自己的新数据库连接,或者应该使用一些单例模式来创建数据库。或者请让我知道是否有其他最佳方法。任何代码示例都将受到高度赞赏。
您不必打开多个连接即可一次多次调用您的 WCF 服务。您所要做的就是使用异步方式调用它。 例如,您可以使用 Parrallel.ForEach() 而不是创建自己的线程。
public void UploadData(List<Data> allDataToUpload)
{
Parallel.ForEach(allDataToUpload, data =>
{
_yourService.Upload(data);
});
}
此外,如果您对线程不是很熟悉,我建议使用 Microsoft 自 .net 4.5 以来提供的所有新工具,如 async、await 和库 Task,而不是管理您自己的线程。