多线程代码在服务器上崩溃但在VS上没有崩溃

时间:2018-03-01 08:34:09

标签: c# mysql multithreading parallel-processing parallel.foreach

我有一个连接到MySql服务器的多线程c#代码。

List<string> itemLst=new List<string>();
//fills the list here
ParallelOptions po=new ParallelOptions();
po.MaxDegreeOfParallelism = 45;
Parallel.ForEach(itemLst,po,item=>
{
//Open connection to MySql server
//do some SELECT queries
//do 1 insert and 1 delete query
//close and dispose connection
}

当我在Visual Studio(2017)的Debug(使用IIS Express)中运行此代码时,一切正常,但当我将代码上传到Linux服务器(ubuntu 16.04)时,它崩溃了。 我尝试使用dotnet运行它来查看异常并收到以下内容:

  

AggregateException:发生一个或多个错误(Connect Timeout   已过期。)---&gt; System.ObjectDisposedException:无法访问   处置对象。

MySql服务器规格:
128GB RAM,20 VCPUS(i7 cpus)
Ubuntu服务器规范:
64GB RAM,16 VCPUS(i7 cpus)
个人电脑:
16GB RAM,1个CPU(i7)

我将如何解决这个问题?

任何帮助将不胜感激!

0 个答案:

没有答案