gpt4 book ai didi

c# - 如何在线程中旋转这两个进程?

转载 作者:行者123 更新时间:2023-12-03 12:49:54 25 4
gpt4 key购买 nike

我有一种从2个区域加载数据的方法。当前,它处理区域1,然后处理区域2。因此,它是单线程。我需要同时进行。这是当前代码。请告知我该怎么办。

在这里输入代码

public override object RProcess()            
{
string queueName = Config.AppSettings["MQSIInboundQueueName"];

string Region1 = Config.AppSettings["Region1"];
string Region2 = Config.AppSettings["Region2"];

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

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

return null;
}

--

最佳答案

除了@Drew Marsh的答案,如果您使用的是.net的较旧版本,还可以使用Thread类或ThreadPool.QueueUserWorkItem在新线程中调用每个操作

//example using Thread class
new Thread(() =>
{
if (Region1.Trim().Length > 0)
{
returnMessage = ProcessMessage(string.Format(queueName, Region1));
Logger.Log(returnMessage);
}
}) { IsBackground = true }.Start();

//example using ThreadPool
ThreadPool.QueueUserWorkItem(new WaitCallback((_) =>
{
if (Region2.Trim().Length > 0)
{
returnMessage = ProcessMessage(string.Format(queueName, Region2));
Logger.Log(returnMessage);
}
}));

无论如何,如果要在应用程序中的任何其他位置更新 Region1Region2,则应考虑使用同步机制在此处访问它们,例如 lock ..

关于c# - 如何在线程中旋转这两个进程?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6988702/

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