C# 线程不可能建议使用任何其他方式进行并行处理

C# 线程不可能建议使用任何其他方式进行并行处理,c#,C#,我用C#编写的代码放在线程中不是线程安全的,因为它涉及大量数据库连接和存储过程执行。但我还是想尽量减少执行所需的时间,有人能给我一些并行或异步处理的建议吗。。数据库端或.net端的任何内容 我被线程缠住了。。无法申请 谢谢您的问题中没有足够的信息来建议优化的解决方案。但是,如果必须处理非线程安全的资源,一种策略是生成单独的进程来处理子任务 但是,请记住,单独的流程仍然必须处理整个解决方案中相互不重叠的部分。很好。有两件事可以做。但是我不知道它到底适合你多少 在数据库端,您可以执行查询优化、索引和

我用C#编写的代码放在线程中不是线程安全的,因为它涉及大量数据库连接和存储过程执行。但我还是想尽量减少执行所需的时间,有人能给我一些并行或异步处理的建议吗。。数据库端或.net端的任何内容

我被线程缠住了。。无法申请


谢谢

您的问题中没有足够的信息来建议优化的解决方案。但是,如果必须处理非线程安全的资源,一种策略是生成单独的进程来处理子任务


但是,请记住,单独的流程仍然必须处理整个解决方案中相互不重叠的部分。

很好。有两件事可以做。但是我不知道它到底适合你多少

在数据库端,您可以执行查询优化、索引和其他可能有助于增加查询运行时间的操作。使用分析器进行分析。请参阅查询计划以检查索引是否正确使用

使用NOLOCK,但仅当您看到可以在选择中不使用锁时才使用。(不一定是一种好的做法,但经常使用)

实现可处理多个请求的正确同步线程。从.Net的角度来看,没有其他方法。你必须正确地检查你的设计。不过,您也可以使用探查器进行代码优化。您也可以使用任务库

另一件事是你的服务器可能有问题。检查CPU和内存利用率。
(这是我最不关心的问题)。

您应该更好地解释您在代码中所做的事情

如果你做了很多循环,你应该试试Parallel.For/Parallel.Foreach

在并行中,您还可以将任务排队以进行有序计算,或者将循环划分为块,以提高整体性能

我能说的最好不过了,信息太少了


希望有帮助。

您希望在调用过程中减少执行时间还是提高GUI响应能力?如果是前者,请考虑优化数据库调用的数量或更普遍地进行基准测试,以找到瓶颈。如果希望提高GUI响应能力(因为挂起了主线程),将操作分为多个步骤,并对每个主循环一次执行一个步骤。我的代码包括1)执行存储过程2)使用步骤1中的数据3)执行存储过程2 4)使用步骤3中的数据5)等等…请建议执行一些操作中断每个步骤并分别执行。这将帮助您隔离最慢的通话,并可能为您提供一个优化的起点。否则你的描述太模糊了,任何具体的东西都可以建议。但代码的每一部分都会产生一些结果,这些结果会在代码的其他部分中使用。。。这是一个只执行存储过程的大代码。。我想处理表中的一行。。处理过程涉及大量的存储过程执行…我想尽量减少时间,但代码的每一部分都会产生一些结果,这些结果会在代码的其他部分中使用。。。这是一个只执行存储过程的大代码。。我想处理表中的一行。。这一处理涉及到大量的存储过程执行……我想尽量减少代码的时间中断,从而将结果分成不同的部分。将它们分开运行,看看哪一部分会让你慢下来。这将有助于您隔离导致问题的部件,您可以从那里着手。希望这有帮助。但是代码的每一部分都会产生一些结果,这些结果会在代码的其他部分中使用。。。这是一个只执行存储过程的大代码。。我想处理表中的一行。。处理涉及大量的存储过程执行…我想尽量减少时间有一些并行模式可以帮助。。。也许这本书可以帮助你