【发布时间】:2013-05-13 21:24:01
【问题描述】:
和/或,何时使用其中之一? 是偏好问题还是技术差异?
关于我为什么要问的一些背景知识: 我有一个运行 .NET 2.0 CF 应用程序的应用程序,并且用户正在执行几个快速操作。我不想阻止操作,但我希望 UI 显示等待图标或进度图标栏。
长时间运行的操作主要是由于 Web 服务调用,然后在设备本身上对返回的数据进行了一些处理。
编辑在查看了 Jim 的回答,特别是下面的引用之后,在避免对 UI 线程施加任何负载的同时执行异步调用的最佳做法是什么?总是在单独的线程中调用 BeginGetResponse?
BeginGetResponse 方法需要一些同步设置任务以 完成(DNS 解析、代理检测和 TCP 套接字连接, 例如)在此方法变为异步之前。因此, 永远不应在用户界面 (UI) 线程上调用此方法 因为这可能需要相当长的时间(最多几分钟 取决于网络设置)完成初始同步 在抛出错误异常或方法之前设置任务 成功。
【问题讨论】:
标签: c# .net multithreading web-services asynchronous