gpt4 book ai didi

c# - 如何异步调用两个方法?

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

我有以下两种方法:

private static void webservicecalls()
{
WebServiceOne();
WebServiceTwo();
}

那么我如何才能异步调用这两个方法,而不是等待第一个 Web 服务调用完成后再调用第二个 Web 服务?

更新:

现在 WebSericeOne 和 WebServiceTwo 都有子调用,例如:

private static void WebServiceOne()
{
CallOne();
CallThree();
}

private static void WebServiceTwo()
{
CallTwo();
CallFour();
}

所以我需要调用具有以下子调用顺序:-

CallOne();
CallTwo();
CallThree();
CallFour();

最佳答案

根据您使用什么来实现 webserviceone webservicetwo,很可能 Web 服务工具本身将具有完整的异步支持,因此首先要要做的是:检查一下,并使用异步 API 而不是同步 API。

如果出于某种原因,那不存在 - 你可以这样做:

var task = new Task(() => webservice1());
task.Start();
webservice2();
task.Wait();

(显然你可以完全异步运行;我在上面假设你只想并行运行它们,并在最后“加入”)

关于您的编辑:如果顺序必须恰好是“一”、“二”、“三”、“四”,那么您不能并行执行它们,因此您将不得不运行整个程序在后台:

new Task(() => {
webservice1();
webservice2();
}).Start();

这将保证执行顺序,牺牲并行性。

关于c# - 如何异步调用两个方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12973332/

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