gpt4 book ai didi

.net - Parallel.for() 循环创建错误的线程 ID

转载 作者:行者123 更新时间:2023-12-05 00:36:42 24 4
gpt4 key购买 nike

我已经使用 .net framework 4.0 开发了一个 .net 应用程序,其中我使用了 parallel.for() 循环进行多线程。我使用了以下配置:

  • 视窗 7
  • IIS 7.0
  • 框架 v4.0.30319

  • 我使用了 ParallelOptions() 类并且该类的“MaxDegreeOfParallelism”属性设置为 5。我在日志文件中记录了“Thread.CurrentThread.ManagedThreadId”以检查是否在运行时创建了 5 个线程。我已经在两个不同的环境中测试了这个应用程序。当应用程序在其开发环境中运行时,它会创建 5 个线程 ID。但是当它在另一个环境中运行时,它会创建 6 或 7 个线程 ID。该应用程序仅在第一个环境中编译。我已使用该应用程序的已发布版本在第二个环境中进行测试。
    任何人都可以通过告知为什么会发生这种情况以及如何解决来帮助我吗?

    最佳答案

    Parallel.For使用线程池线程。 MaxDegreeOfParallelism控制正在使用的最大并发线程数,而不是 5 个特定线程 - 线程池可以自由处理其任何线程上的工作,并且 Parallel.For确保只有 5 个同时运行。

    关于.net - Parallel.for() 循环创建错误的线程 ID,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7928779/

    24 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com