gpt4 book ai didi

c# - 使用线程从两个长时间运行的方法返回值

转载 作者:行者123 更新时间:2023-12-02 18:19:32 25 4
gpt4 key购买 nike

我有一个连接到两个网络资源的线程。每次我尝试连接时,可能需要 10 秒才能得到回复。

void MyThread()
{
//this takes ten seconds
Resource r1 = MySystem.GetResource(ipAddress1);

//this takes ten seconds
Resource r2 = MySystem.GetResource(ipAddress2);

//do stuff with ep1 and ep2
}

总时间是二十秒,但我真的希望只需要十秒——每次调用 GetResource 时启动线程,接收答复,然后加入每个线程以返回控制权。

最好的方法是什么?启动两个线程,每个线程返回一个值?引用局部变量的匿名方法?我头晕目眩。代码值得赞赏。

最佳答案

怎么样

Resource r1 = null; // need to initialize, else compiler complains
Resource r2 = null;

ThreadStart ts1 = delegate {
r1 = MySystem.GetResource(ipAddress1);
};
ThreadStart ts2 = delegate {
r2 = MySystem.GetResource(ipAddress2);
};
Thread t1 = new Thread(ts1);
Thread t2 = new Thread(ts2);
t1.Start();
t2.Start();
// do some useful work here, while the threads do their thing...
t1.Join();
t2.Join();
// r1, r2 now setup

简短而甜蜜。

关于c# - 使用线程从两个长时间运行的方法返回值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1336200/

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