Sql 在dotnet中引入多线程而不创建新线程是否可能?
我有几百个项目需要处理 通过有条件地设置全局SQLConnection来处理每个项目,其中在处理过程中使用此SQLConnection处理项目 因此,不允许并行处理这些项目是至关重要的 我理解这不是一个好的设计,我希望在可行的情况下尽快纠正它 然而,尽管我尽了最大的努力,这段代码似乎正在经历某种形式的多线程。不知何故,其中一个任务引发了异常 此异常违反了外键约束,但表示它是针对一个SQLConnection操作的,而该SQLConnection不需要连接 当然,我对此很担心,但据我所知,这个应用程序中没有多线程代码 我想知道有没有可能在不显式创建新线程的情况下引入多线程 编辑:Sql 在dotnet中引入多线程而不创建新线程是否可能?,sql,multithreading,parallel-processing,reentrancy,Sql,Multithreading,Parallel Processing,Reentrancy,我有几百个项目需要处理 通过有条件地设置全局SQLConnection来处理每个项目,其中在处理过程中使用此SQLConnection处理项目 因此,不允许并行处理这些项目是至关重要的 我理解这不是一个好的设计,我希望在可行的情况下尽快纠正它 然而,尽管我尽了最大的努力,这段代码似乎正在经历某种形式的多线程。不知何故,其中一个任务引发了异常 此异常违反了外键约束,但表示它是针对一个SQLConnection操作的,而该SQLConnection不需要连接 当然,我对此很担心,但据我所知,这个应用
- VB.NET3.5SP1
- 控制台应用程序+类库
- 偶尔调用web服务
- 进行SQL调用
- 没什么别的了。没有Winforms,就没有WPF李>
与不惜一切代价避免多线程相比,锁定不是更容易吗?很抱歉,如果这个问题太幼稚,我可能会错过一些东西。除了前面提到的其他东西:并行扩展(PLINQ和任务并行库)。可能是您的代码是从第三方库调用的。通过使用事件,另一个库可以从任意多个线程调用您的代码。
我建议您检查调用更改代码的代码,并确保没有可疑的代码调用 很好的建议-投票表决。但是,此代码中未使用套接字。和.NET3.5(应该提到这一点)所以没有任务只是出于好奇,如果不使用套接字,您是否使用管道?你在问题中提到了一个连接。对不起,我指的是数据库的SQLConnection。可以选择几个数据库。都有相似的结构。为了反映这一点,我修改了我的问题。我根本不是C#方面的SQL专家,但API很可能有异步事件。例如,当您执行请求时,请确保通过执行阻止调用而不是指定回调来获得结果。您可能希望确定您使用的是除套接字(WCF、WinForms等)之外的哪种库。Webservices?对我来说,这听起来很有趣。没有对该类的直接引用。但是也有对System.Threading.Thread.Sleep(1000)的调用。这会导致类似的后果吗?