6
我正在使用c#/ XAML的Windows 8應用程序。除了這個事件處理程序之外,所有東西都一直在工作,我在這一行中遇到以下錯誤。Windows 8應用程序稱爲接口的應用程序被編組爲不同的線程
await RefreshUserInfoAsync();
的應用程序調用這是編組爲一個不同的線程的接口。 (來自HRESULT的異常:0x8001010E(RPC_E_WRONG_THREAD))
此Observable集合正在從應用程序類中的推送通知處理程序進行更新,並且此事件處理程序位於我的視圖模型中。我沒有使用MVVM Light之類的框架。我查看了一些其他的帖子,並試圖創建我自己的Dispatcher Helper,但是我收到了一個不同的錯誤,其中Window.Current.Dispatcher爲null。任何想法如何使這項工作?
強調文本
private async void PushActions_CollectionChanged(object sender, System.Collections.Specialized.NotifyCollectionChangedEventArgs e) { string action = e.NewItems[0] as string; if(action != null) { await RefreshUserInfoAsync(); } } private async Task RefreshUserInfoAsync() { var userInfos = await SessionRepository.GetSessionUsersWithInfoAsync(SessionGuid, RoundGuid); this.UserInfoList = new ObservableCollection<UserInfo>(userInfos); }
對我不起作用。 VS由於某種原因不能識別「await」。我正在開發用於Windows 8 SDK的MS Surface。 – Howie 2013-08-21 11:52:39
你的方法簽名有異步嗎? 公共異步任務 GetCustomersAsync()。如果是這樣,你使用的是什麼框架? 4.5?如果它在PCL中,並且你選擇了低於Win8的東西,它可能會恢復到4.0。我認爲有一個nugget軟件包用於爲4.0庫添加異步/等待。 –
MikeDouglasDev
2013-08-22 10:52:22
像魅力一樣工作,非常感謝! – cesarferreira 2013-12-18 14:15:49