-4

我在 C# 中放入线程的代码不是线程安全的,因为它涉及大量数据库连接、存储过程执行。但我仍然想尽量减少执行所需的时间,任何人都可以向我建议一些并行或异步处理的东西......来自数据库端或.net端的任何东西......

我被线程卡住了..无法申请...

谢谢

4

3 回答 3

0

你应该更好地解释你在你的代码中做什么......

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

http://msdn.microsoft.com/en-us/library/system.threading.tasks.parallel.aspx

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

我能说的最好的,只有这么少的信息。

希望能帮助到你。

于 2012-08-06T19:04:46.813 回答
0

出色地 。有几件事可以做。但是我不知道它真的适合你。

在数据库方面,您可以进行查询优化、索引和其他可能有助于增加查询运行时间的事情。使用分析器分析 . 查看查询计划以检查索引是否正确使用。

使用 NOLOCKS,但仅在您看到可以在您的选择中使用 NO LOCKS 的地方使用。(并不总是一个好的做法,但被使用)

实现可以处理多个请求的适当同步线程。.Net Side 没有其他方法。您必须正确审查您的设计。但是,您也可以使用分析器进行代码优化。您也可以使用任务库。

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

于 2012-08-06T18:53:17.633 回答
0

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

但是请记住,单独的进程仍然必须处理整体解决方案中不相互影响的部分。

于 2012-08-06T18:47:19.147 回答