JD.*_*JD. 2 c# silverlight multithreading
我有一个silverlight应用程序,可以在服务器端启动一些工作.每项工作都是一个彼此独立的工作单元.
我使用了Parallel.ForEach()并且它工作正常然而我意识到如果我有大量的工作(比如超过300),当线程数增加50时,silverlight应用程序似乎停止响应(它不会冻结浏览器但是应该在其中填充数据的网格是空的并且小圆环保持旋转.
只有当线程计数再次下降(即所有作业都已完成处理)时才会填充网格.
我正在使用Asp.net开发服务器(基于cassini)进行测试,并且想知道它与它有什么关系.
我也改变了我的代码以使用异步编程模型,但是我遇到了与线程增加相同的问题.
可能导致这种情况的任何想法?
JD
我正在考虑做ThreadPool.SetMaxThread(),但我在某处读到这可能不适用于Web托管应用程序.
如果你为所有线程吞并所有线程,那么就没有任何线程可用于服务WCF请求你的网格可能依赖于获取它需要显示的数据.
您可能希望使用ForEach方法中的ParallelOptions参数来指定一次调度的最大并行操作数.
| 归档时间: |
|
| 查看次数: |
296 次 |
| 最近记录: |