gpt4 book ai didi

c# - 什么线程在 silverlight WCF 调用中调用完成的事件处理程序?

转载 作者:太空狗 更新时间:2023-10-29 23:26:09 24 4
gpt4 key购买 nike

假设我有 Silverlight 应用调用 WCF 服务:

void DoStuff()
{
MyProxy proxy = new MyProxy();
proxy.DoStuffCompleted += DoStuffCompleted;
proxy.DoStuffAsync();
}

void DoStuffCompleted(object sender, DoStuffCompletedEventArgs e)
{
// Handle the result.
}

DoStuff 由 UI 线程调用。哪个线程最终会调用 DoStuffCompleted 方法?如果我同时调用两个异步调用,是否有可能在不同的线程上同时触发两个已完成的事件?

最佳答案

回调将在主线程上调用。多个响应不会同时出现。响应事件的顺序可能出乎意料。您可能想要使用接受“用户状态”对象的 proxy.DoStuffAsync 的重载:

proxy.DoStuffAsync(object userState)

这将允许您为每个调用发送一些独特的东西,这样您就可以区分您正在处理的响应。请记住,如果 WCF 调用返回错误,则您没有返回值 - 因此 userState 可能是知道哪个调用失败的唯一方法(如果它重要的话)。

更新:

找到了一些关于如何让它使用另一个线程的更多信息(关于 SO):

Silverlight web service callback performance点击 Tomek 博客的链接,了解更多信息。

关于c# - 什么线程在 silverlight WCF 调用中调用完成的事件处理程序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6264134/

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