在我的SL4應用程序中,我調用了一個服務svc.SubmitAsync()。由於這是一個異步調用,一旦命中該方法,我的代碼就會進入下一行。只要用戶輸入正確的用戶名和密碼,就可以。如果他們不這樣做,EndSubmit()會拋出一個異常。 EndSubmit()在References.cs中,是自動生成的Silverlight代碼的一部分。在Silverlight中,如何在異步調用期間處理錯誤?
我試着在try-catch中包裝svc.SubmitAsync(),但這是一個異步調用,try-catch塊在異常甚至被拋出之前完成。
如何捕獲此錯誤?
謝謝!
更新1
public void SubmitTweetAsync(TestSilverlightApp.svc.Tweet tweet, object userState) {
if ((this.onBeginSubmitTweetDelegate == null)) {
this.onBeginSubmitTweetDelegate = new BeginOperationDelegate(this.OnBeginSubmitTweet);
}
if ((this.onEndSubmitTweetDelegate == null)) {
this.onEndSubmitTweetDelegate = new EndOperationDelegate(this.OnEndSubmitTweet);
}
if ((this.onSubmitTweetCompletedDelegate == null)) {
this.onSubmitTweetCompletedDelegate = new System.Threading.SendOrPostCallback(this.OnSubmitTweetCompleted);
}
base.InvokeAsync(this.onBeginSubmitTweetDelegate, new object[] {
tweet}, this.onEndSubmitTweetDelegate, this.onSubmitTweetCompletedDelegate, userState);
}
更新2 - 這是一個WCF服務。
你能發表SubmitAsync的代碼嗎? – dtb 2010-08-22 16:02:01
什麼類型的服務? WCF? – 2010-08-22 16:04:09
有沒有方法BeginSubmit有任何機會? – dtb 2010-08-22 16:10:47