Ree*_*Ree 3 c# multithreading synchronization .net-3.5
我目前有这个代码(感谢此处的帮助).我需要创建第一个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();
Run Code Online (Sandbox Code Playgroud)
你可以这样做:
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();
Run Code Online (Sandbox Code Playgroud)
这将启动thRegion1线程并执行当前线程中的其他工作.这项工作完成后,它会调用Join上thRegion1,这将立即返回,如果thRegion1已经在其工作结束.
| 归档时间: |
|
| 查看次数: |
203 次 |
| 最近记录: |