【问题标题】:Calling EndSomeMethod on an ASync WCF Proxy在异步 WCF 代理上调用 EndSomeMethod
【发布时间】:2012-06-27 14:44:59
【问题描述】:

我在 WCF 代理上有一个返回 void 的方法。如果 return 是 non-void,我需要调用相应的 End... 方法来获取结果,但是如果 return 是 void 怎么办?

例如:

    ModuleProxy.Instance.Controller.BeginSaveConfiguration(Module.Name, Proxy_EndSaveConfig, null);
    ...
}

private void Proxy_EndSaveConfig(IAsyncResult ar) {
    ModuleProxy.Instance.Controller.EndSaveConfiguration(ar);
}

我只是传递了一个空回调然后从不调用EndSaveConfiguration,代理会坚持一些事情还是最终会进入一个奇怪的状态?

【问题讨论】:

    标签: .net wcf asynchronous iasyncresult


    【解决方案1】:

    通常您的异步请求应该超时。默认值为 10 分钟。如果您想减少它,请将其绑定配置更改为较低的值。

    【讨论】:

    • 是但不调用End方法有什么负面影响吗?
    • 不,因为您的操作在单独的线程中运行,所以不会。您可能遇到的唯一问题是,如果您有大量的传入请求,那么线程的数量将真正蓬勃发展。为了抵消这种影响,请将超时值更改为较小的值(如果您的操作没有执行真正长时间运行的任务)。
    猜你喜欢
    • 2015-05-15
    • 1970-01-01
    • 2010-11-20
    • 1970-01-01
    • 2017-09-11
    • 2012-10-03
    • 1970-01-01
    • 2014-03-02
    • 1970-01-01
    相关资源
    最近更新 更多