我在Windows svc中托管了一个WCF服务。我从winforms应用程序以正常方式执行它,创建通道等,然后调用方法。服务器端没有.svc文件。
但是,当我从gui调用windows服务中的方法时,这会阻止UI。有没有办法在不阻止UI的情况下执行此操作?
由于
答案 0 :(得分:0)
为什么不使用Async方法? 对于IDE为您生成的每个方法,还有另一种使用Async后缀的方法。这样您就可以异步调用Web服务。
答案 1 :(得分:0)
查看BackgroundWorker类或更新的Task Parallel Library。您想要的是发出对服务的调用,并描述在收到答案时要执行的操作,但不会在等待答案时阻止UI。在某些情况下,UI在等待答案时可能没有任何内容可以做,例如在搜索对话框的情况下。在答案回来之前,用户界面实际上没有其他任何东西可以做。但是在后台执行搜索意味着已经释放了UI 线程。这意味着您仍然可以移动窗口并调整其大小,或者在您等待时可能切换到同一应用程序中的另一个窗体。这是在后台执行调用的充分理由。