gpt4 book ai didi

c# - 异步调用新手问题

转载 作者:行者123 更新时间:2023-11-30 19:35:00 25 4
gpt4 key购买 nike

我正在做一个小项目,我需要一个接一个地进行两个异步调用。

我的代码看起来像这样:

AsynchronousCall1();
AsynchronousCall2();

我遇到的问题是,这两个调用都需要一到两秒的时间才能执行,而且我永远不知道哪个会最后完成。我正在寻找的是一种确定谁最后完成的方法。如果 Call1() 最后完成,我会做一件事。如果 Call2() 最后完成,我会做另一件事。

最佳答案

这是一个使用来确保只有一个线程可以输入一段代码的简单示例。但这是一个一般示例,可能适合也可能不适合您的应用程序。为您的问题添加一些详细信息,以帮助我们找到您要查找的内容。

 void AsynchronousCall1()
{
// do some work
Done("1");
}

void AsynchronousCall2()
{
// do some work
Done("2");
}

readonly object _exclusiveAccess = new object();
volatile bool _alreadyDone = false;
void Done(string who)
{
lock (_exclusiveAccess)
{
if (_alreadyDone)
return;

_alreadyDone = true;
Console.WriteLine(who + " was here first");
}
}

关于c# - 异步调用新手问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/667157/

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