我有asmx webservice,我在PCL中使用它,所以我們都知道現在PCL不再支持asmx webservice,它支持wcf webservices。我以某種方式設法通過使用silverlight插件通過PCL調用asmx webservice。但它創建異步方法並將WSDL轉換爲wcf。異步返回值方法
現在的問題是我需要從webmethods返回一些現在是異步方法的值。如果有人知道這個解決方案,請幫助我。
我使用下面的代碼,
}
所以,當我運行它的temp
值爲null。當我調試它時,我發現當getResult
發生時,它到達void getResult
那時它已達到return
聲明。
這裏的問題是,GetCityForecastByZIPAsync
方法被調用時,它不會等待別人的操作完成,它只是完成它的執行並返回。現在有一個webservice
僅在發生事件getResult
(在這種情況下)時才被調用,事件getResult
(在本例中)的調用基於網絡,服務器響應將會有一點我們無法控制的延遲。因此,直到那個時候GetCityForecastByZIPAsync
方法完成其執行。並且在發生getResult
事件後的一段時間,它會執行,但不會返回到調用方法即viz。 checkTemp
方法。
那麼如何從getResult
事件中獲取數據,並將其返回到checkTemp
方法,以便我可以將其用於我的目的。
如果有人知道,請幫助我。
如果不知道'sampleSoapClient'的公共API,我們無法真正幫助您。但是,乍看起來,它看起來像是在將基於事件的異步與基於任務的異步混合在一起,而您並不等待'AuthenticateUserLoginAsync'完成。 – dcastro 2014-10-28 11:11:09
@dcastro:由於某種原因,我無法放入'sampleSoapClient'。但我已經把另一個例子的行爲完全一樣。所以請按照上面的代碼幫助我。 – Rohit 2014-10-28 11:18:22