gpt4 book ai didi

asp.net - 在异步 WebMethod 调用后更新 UI

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

你好!

我有一个 WebService,它包含一个 WebMethod,它执行一些工作并返回一个 bool 值。它所做的工作可能需要也可能不需要一些时间,所以我想异步调用它。

[WebService(Namespace = "http://tempuri.com/")]
[WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
[System.ComponentModel.ToolboxItem(false)]
public class MyWebSvc : System.Web.Services.WebService
{
[WebMethod]
public bool DoWork()
{
bool succ = false;

try
{
// do some work, which might take a while
}
catch (Exception ex)
{
// handle
succ = false;
}

return succ;
}
}

此 WebService 存在于 Web 场中的每台服务器上。所以为了在每台服务器上调用 DoWork() 方法,我有一个类库来这样做,基于服务器 URL 列表:
static public class WebSvcsMgr
{
static public void DoAllWork(ICollection<string> servers)
{
MyWebSvc myWebSvc = new MyWebSvc();

foreach (string svr_url in servers)
{
myWebSvc.Url = svr_url;
myWebSvc.DoWork();
}
}
}

最后,这是从 Web 界面在 asp:Button 单击事件中调用的,如下所示:
WebSvcsMgr.DoAllWork(server_list);

对于 Web 窗体调用的静态 DoAllWork() 方法,我计划通过 IAsyncResult 使其成为异步调用。但是,当返回结果时,我想为场中的每个服务器报告 DoWork() WebMethod 的成功/失败。与 UpdatePanel 结合使用的最佳方法是什么?网格 View ?标签?静态助手类如何将其返回到 Web 表单?

最佳答案

Asynchronous pages在需要异步调用 Web 服务方法的场景中很有帮助。

关于asp.net - 在异步 WebMethod 调用后更新 UI,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/153639/

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