gpt4 book ai didi

c# - 创建多个线程并与它们通信

转载 作者:行者123 更新时间:2023-12-02 17:51:20 26 4
gpt4 key购买 nike

我有一个程序,需要很长时间才能初始化,但执行速度相当快。

它正在成为一个瓶颈,所以我想启动该程序的多个实例(如池)并已初始化,其想法是仅传递执行所需的参数,从而节省所有初始化时间。

问题是我只找到了如何启动传递参数的新进程:
How to pass parameters to ThreadStart method in Thread?

但我想正常启动该进程,然后能够与其通信以向每个线程发送执行所需的参数。

我发现的最好的方法是创建多个线程,在其中初始化程序,然后使用某种通信机制(例如命名管道,因为它都在同一台机器上运行)能够传递这些参数并触发执行程序(例如,其中一个触发器可能会中断无限循环)。

我问是否有人可以建议一个比我想出的更优化的解决方案。

最佳答案

我建议您不要直接使用Thread,而使用TPL,如下所示:

foreach (var data in YOUR_INITIALIZATION_LOGIC_METHOD_HERE)
{
Task.Run(() => yourDelegate(data), //other params here);
}

有关 MSDN 上的 Task.Run 的更多信息, Stephen Cleary blog

关于c# - 创建多个线程并与它们通信,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29389459/

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