- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我试图绕过 .net 3.5 强加的 wait64 句柄限制
我看过这个帖子:Workaround for the WaitHandle.WaitAll 64 handle limit?
所以我理解了总体思路,但我遇到了困难,因为我没有使用委托(delegate),而是使用了
我基本上是在处理这个例子: http://msdn.microsoft.com/en-us/library/3dasc8as%28VS.80%29.aspx
此链接http://www.switchonthecode.com/tutorials/csharp-tutorial-using-the-threadpool类似,但跟踪任务的 int 变量也是一个成员变量。
在上面的例子中,我应该在哪里传递 threadCount 整数?我是否将它作为对象传递到回调方法中?我想我在回调方法和引用传递方面遇到了问题。
谢谢斯蒂芬,
我不太清楚这个链接。
让我发布我的代码来帮助自己澄清:
for (int flows = 0; flows < NumFlows; flows++)
{
ResetEvents[flows] = new ManualResetEvent(false);
ICalculator calculator = new NewtonRaphson(Perturbations);
Calculators[flows] = calculator;
ThreadPool.QueueUserWorkItem(calculator.ThreadPoolCallback, flows);
}
resetEvent.WaitOne();
我将在哪里传递我的 threadCount 变量。我假设它需要在 calculator.ThreadPoolCallback 中递减?
最佳答案
您不应使用多个等待句柄来等待 ThreadPool
中多个工作项的完成。它不仅不可扩展,您最终会遇到 WaitHandle.WaitAll
方法强加的 64 个句柄限制(正如您已经完成的那样)。在这种情况下使用的正确模式是计数等待句柄。 Reactive Extensions 中有一个可用通过 CountdownEvent 下载 .NET 3.5类。
var finished = new CountdownEvent(1);
for (int flows = 0; flows < NumFlows; flows++)
{
finished.AddCount();
ICalculator calculator = new NewtonRaphson(Perturbations);
Calculators[flows] = calculator;
ThreadPool.QueueUserWorkItem(
(state) =>
{
try
{
calculator.ThreadPoolCallback(state);
}
finally
{
finished.Signal();
}
}, flows);
}
finished.Signal();
finished.Wait();
关于c# - ThreadPool - WaitAll 64 句柄限制,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3152624/
我设置了 Helm 柄和 Helm 柄。我有tiller-deploy。昨天,我可以定期运行了。但今天我收到此错误消息 Error: could not find a ready tiller pod
我以前已将分er安装到特定的 namespace 中。 我设置了一个环境变量来设置'tiller'命名空间-但我不记得该环境变量的名称-而且似乎无法通过网络搜索找到它。 这是什么 key ? 最佳答案
当我在 View 模型中使用如下界面时 class MainViewModel @ViewModelInject constructor( private val trafficImagesR
我正在尝试找到如何在某个 fragment 相关场景中定义 Hilt 的解决方案。我有以下设置: Activity 父 fragment 1 子 fragment 1 子 fragment 2 ...
Hilt 指出如果没有@Provides 注解就不能提供这个接口(interface): interface PlannedListRepository { fun getAllLists()
我的问题非常简单明了:两个注释/示例之间有什么区别: 例子一 @Singleton class MySingletonClass() {} @Module @InstallIn(FragmentCom
我是一名优秀的程序员,十分优秀!