|
|
1
3
我想你已经调查过了 Asynchronous ASP.NET page processing ? |
|
|
2
2
|
|
|
3
1
主要是因为这是个坏主意。长时间运行的进程应转换为Windows服务,这些服务可以连续运行,偶尔检查数据库或其他工作或ASP.NET应用程序可以唤醒的服务。 |
|
|
4
0
我自己也经常做同样的事情。我发现有一个最大值,它基于“每个CPU的线程数”,这些可以在web.config和machine.config文件中进行调整和微调。 This post 对此有合理的解释。 建议的最大值将是默认设置,至少根据我以前从Microsoft阅读过的有关此主题的文档。 您将发现需要跨越的最大陷阱是如何向用户报告进度或结果。我通常使用来自客户机的轮询机制来回调检查会话状态进度的页面。当然,会话状态是从主线程更新的。如果你想看到这种方法在现实生活中起作用,请看 House of Travel 在网站上搜索航班。 |
|
|
5
0
我本来打算对此发表评论,但我意识到它比我想象的更具相关性。 Eric Lippert 以前听过这组问题,并说这是无法回答的。
|
|
|
6
0
确保您只在要受益的时候使用线程。如果长时间运行的代码是CPU密集型的,那么您实际上不会从异步调用中受益(事实上,性能会随着开销的增加而降低)。 使用线程进行I/O操作或调用Web服务。 每个应用程序都不同。简单地将threadpool设置为max不是答案,或者它已经设置为这个级别了! 设置线程池的值越高,CPU就越饱和,因此如果您有CPU密集型代码,那么这只会使问题更加复杂。 当然,您可以将这些CPU密集型调用卸载到另一台机器上。 http://msdn.microsoft.com/en-gb/magazine/cc163327.aspx http://msdn.microsoft.com/en-us/magazine/cc163725.aspx |
|
|
user107586 · 如何处理等待句柄不会导致无限循环? 1 年前 |
|
|
ron burgundy · 获取-释放语义是否跨线程传递?[副本] 1 年前 |
|
|
BenjiFB · C#内存缓存:在一次操作中追加到列表? 1 年前 |
|
|
András Takács · Python多线程问题 1 年前 |
|
|
András Takács · Python多线程错误 1 年前 |