gpt4 book ai didi

c# - 在 C# Web 服务中调用异步调用

转载 作者:行者123 更新时间:2023-11-30 22:50:59 25 4
gpt4 key购买 nike

我在 Web 服务中使用第三方资源(.dll),我的问题是,调用此资源(调用方法)是异步完成的 - 我需要订阅一个事件,以获取我的要求的答案。我如何在 C# Web 服务中做到这一点?

更新:

关于Sunny's answer :

我不想让我的网络服务异步。

最佳答案

假设您的第 3 方组件正在使用整个 .NET Framework 中使用的异步编程模型模式,您可以这样做

    HttpWebRequest httpWebRequest = (HttpWebRequest)WebRequest.Create("http://www.stackoverflow.com");
IAsyncResult asyncResult = httpWebRequest.BeginGetResponse(null, null);

asyncResult.AsyncWaitHandle.WaitOne();

using (HttpWebResponse httpWebResponse = (HttpWebResponse)httpWebRequest.EndGetResponse(asyncResult))
using (StreamReader responseStreamReader = new StreamReader(httpWebResponse.GetResponseStream()))
{
string responseText = responseStreamReader.ReadToEnd();
}

由于您需要阻止 Web 服务操作,因此您应该使用 IAsyncResult.AsyncWaitHandle 而不是回调来阻止直到操作完成。

关于c# - 在 C# Web 服务中调用异步调用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/246791/

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