1

在處理手機的Windows 10 UWP應用程序時,我遇到了聯繫人選擇器API對象的問題。該手機安裝了Developer Preview 10532。Windows 10 UWP應用程序在異步挑選聯繫人時崩潰

我有這樣的事件處理程序的按鈕:

private async void pickContactAppBar_Click (object sender, RoutedEventArgs e) 
    { 
     try 
     { 
       ContactPicker contactPicker = new ContactPicker(); 
       IList<Contact> pickedContacts = await contactPicker.PickContactsAsync(); 
       if (pickedContacts != null) 
        int pickedContactsCount = pickedContacts.Count; 
     } 
     catch (Exception ex) 
     { 
      MessageDialog messageDialog = new MessageDialog(ex.Message); 
      await messageDialog.ShowAsync(); 
     } 
    } 

這是應該給予我接觸與聯絡人挑選挑選。

問題是,在聯繫人選擇器窗口出現後,在我設法選擇聯繫人之後,應用程序在半秒後崩潰。即使在顯示選取器後我沒有做任何事情,它也會崩潰,但只是簡單地等待。它似乎在加載聯繫人列表期間崩潰...

它發生在我部署調試或釋放代碼,但不是當我通過按F5從Visual Studio啓動應用程序時。另外,也不會拋出異常。

我很確定我正在使用異步並正確等待。由於這個方法是一個事件處理程序,它必須是異步無效的。

該方法包含更多的代碼,更多的是等待,但我添加了MessageDialog調用來查看它結束的位置,並且在調用PickContactsAsync()之後發生。之後沒有任何東西被執行。我甚至評論過其代碼的所有其他部分。

關於可能發生什麼的任何建議?謝謝。

+0

什麼是例外?你是否從後臺線程修改UI線程? –

+0

@O.O,有**沒有例外**。不,我沒有那樣做。我只想選擇一個或多個聯繫人,從返回的聯繫人類型對象中獲取一些字段。但即使我在事件處理程序中只有這些代碼,也會發生崩潰,沒有別的。只要選擇器出現並且聯繫人列表開始填滿,半秒鐘後就會崩潰,而沒有任何用戶輸入。 – robcsi

+0

在主頁面的構造函數中調用異步函數是不是很好的做法?它不能用await調用,因爲構造函數不能做成異步。我有一個async void Init()函數,這個函數就是這樣調用的... – robcsi

回答

-1

它已經解決了,雖然我找不出什麼問題......

相關問題