我使用.net Framework4.0开发了一个.net应用程序,其中我使用parallel.for()循环进行多线程处理。我使用了以下配置:
我使用了ParallelOptions()类,这个类的"MaxDegreeOfParallelism“属性设置为5,我在日志文件中记录了"Thread.CurrentThread.ManagedThreadId”,以检查是否在运行时创建了5个线程。我在两个不同的环境中测试了这个应用程序。当应用程序在开发它的环境中运行时,它将创建5个线程is。但是,当它在另一个环境中运行时,它正在创建6个或7个线程it。该应用程序仅在第一个环境中编译。我已经使用该应用程序的发布版本在第二个环境中进行测试。有人能帮助我,告诉我为什么会发生这种情况,以及如何解决吗?
发布于 2011-10-28 12:02:15
Parallel.For使用线程池线程。MaxDegreeOfParallelism控制使用的最大并发线程数,而不是5个特定线程--线程池可以自由处理其任何线程上的工作,而Parallel.For确保只有5个线程同时运行。
https://stackoverflow.com/questions/7928779
复制相似问题