【问题标题】:Create Dynamic Threads in c# [closed]在 C# 中创建动态线程 [关闭]
【发布时间】:2020-04-01 23:29:17
【问题描述】:

我需要在 c# 中创建一个动态线程来执行我的数据表行。

例如:我在数据表中有 10000 行,所以我需要创建 10 个线程,每个线程一次将执行 1000 条记录。

如果我的表格行数会增加,那么线程创建也需要增加

通常,我们创建一个线程,它将执行整个 10000 条记录,我需要动态线程,这将以拆分格式执行我的 10000 条记录,这将提高我的应用程序性能。

如果我创建了 4 个线程来执行我的 10000 条记录,每个线程将执行 2500 条记录。

第一个线程将执行 0 到 2500 条记录 第二个线程将执行 2501 到 5000 条记录 第三个线程将执行 5001 到 7500 条记录 第 4 个线程将执行 75001 到 10000 条记录

对于上面的例子,我决定创建 4 个线程,我希望它应该是动态的方式

【问题讨论】:

  • 请提供更多信息,也许发布一些您编写的代码示例?
  • 这听起来很不寻常,也许您想要一个消息队列和基于队列长度的横向扩展?您能否分享更多有关您正在尝试解决的问题的信息
  • 查看Parallel.ForEach(),它会毫不费力地完成所有这些工作。
  • 最佳线程数取决于您的 CPU,而不是数据的大小。
  • 别那样做!

标签: c# asp.net .net multithreading thread-safety


【解决方案1】:

您的问题缺乏细节,但我认为您正在寻找一种限制机制。有很多现有的库可以为您完成繁重的工作,例如https://nugetmusthaves.com/Tag/throttling

您也可以自己实现。同步和异步代码的实现细节会有所不同。

https://blog.briandrupieski.com/throttling-asynchronous-methods-in-csharp

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-11-10
    • 2013-10-16
    • 2014-08-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多