gpt4 book ai didi

c# - 如何同步线程中的 2 个进程以便它们一起运行?

转载 作者:行者123 更新时间:2023-11-30 14:38:54 25 4
gpt4 key购买 nike

我目前有这段代码(感谢这里的帮助)。我需要将第一个 ProcessMessage 创建为线程并同步运行第二个 ProcessMessage(在当前线程上),然后在单个线程上执行 Join。否则,我将有三个线程有效地做两件事。我该如何修改它来完成它?我在 .NET 3.5 上

Thread thRegion1 = new Thread(() =>
{
if (Region1.Trim().Length > 0)
{
returnMessage = ProcessTheMessage(string.Format(queueName, Region1));
Logger.Log(returnMessage);
}
});

Thread thRegion2 = new Thread(() =>
{
if (Region2.Trim().Length > 0)
{
returnMessage = ProcessTheMessage(string.Format(queueName, Region2));
Logger.Log(returnMessage);
}
});

thRegion1.Start();
thRegion2.Start();

thRegion1.Join();
thRegion2.Join();

最佳答案

你可以这样做:

Thread thRegion1 = new Thread(() =>
{
if (shawRegion1.Trim().Length > 0)
{
returnMessage = ProcessMessage(string.Format(queueName,
shawRegion1));
Logger.Log(returnMessage);
}
});

thRegion1.Start();

if (shawRegion2.Trim().Length > 0)
{
returnMessage = ProcessMessage(string.Format(queueName, shawRegion2));
Logger.Log(returnMessage);
}

thRegion1.Join();

这将启动 thRegion1 线程并在当前线程中执行其他部分的工作。完成该工作后,它会在 thRegion1 上调用 Join,如果 thRegion1 已经完成其工作,它将立即返回。

关于c# - 如何同步线程中的 2 个进程以便它们一起运行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7123008/

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