我有一個WCF服務託管在Windows svc中。我以正常的方式從winforms應用程序執行它,製作頻道等,然後調用該方法。服務器端沒有.svc文件。在Windows svc中調用自託管的WCF服務而不阻塞UI
但是,當我從gui調用Windows服務中的方法時,這會阻止UI。有沒有阻止用戶界面的方式來做到這一點?
謝謝
我有一個WCF服務託管在Windows svc中。我以正常的方式從winforms應用程序執行它,製作頻道等,然後調用該方法。服務器端沒有.svc文件。在Windows svc中調用自託管的WCF服務而不阻塞UI
但是,當我從gui調用Windows服務中的方法時,這會阻止UI。有沒有阻止用戶界面的方式來做到這一點?
謝謝
看看BackgroundWorker類或更新的Task Parallel Library的東西。你想要的是打電話給服務,並描述接收到答案時該做什麼,但不要在等待答案的同時阻止UI。在某些情況下,UI在等待答案(例如搜索對話框的情況下)時可能沒有任何內容可用於做。在答案回來之前,UI還沒有其他任何東西可以做。但是在後臺執行搜索意味着UI 線程已被釋放。這意味着您應該仍然可以移動和調整窗口大小,或者在等待時切換到同一應用程序中的另一個表單。這是在後臺執行調用的充分理由。
所以你有一個客戶端應用程序,有一個GUI,然後調用在UI中託管的WCF服務? – aceinthehole 2011-05-11 19:14:12
WCF服務不在Windows服務中。對不起,我注意到我的帖子有點不清楚,現在我已經澄清了。 – dotnetdev 2011-05-11 19:15:25
您是否從UI中的單獨線程調用WCF服務? – aceinthehole 2011-05-11 19:17:34