我建立一個.NETStandard庫(1.3版), 使用異步等待庫裏面正常工作,直到我一個參考添加Windows.Foundation.UniversalApiContract。 添加此引用我得到的每一個錯誤的關鍵字等待我的代碼中後.netstandard庫和UniversalApiContract
這是錯誤
「IAsyncAction」不包含「GetAwaiter」,沒有 擴展方法的定義「GetAwaiter」接受 型「IAsyncAction」的第一個參數可以發現
這是我需要運行的代碼
await CoreApplication.MainView.CoreWindow.Dispatcher.RunAsync(CoreDispatcherPriority.Low,() => { OnUserChanged?.Invoke(user); });
去除等待關鍵字結果在一個工作代碼,但我得到這樣的警告
因爲這個電話是不是等待,結束通話之前,在當前方法 的繼續執行。考慮將「await」 運算符應用於調用的結果。
我該如何解決這個問題?
如果UWP特定,則不應添加此類引用。 –
當你像CoreApplication一樣對WinRT類型進行硬編碼時,你的庫不會成爲「標準」。而異步/等待在UWP應用程序中的工作方式非常不同,關鍵字沒有什麼特別明顯的。由於它只能在UWP應用程序中運行,因此請考慮使用「類庫(通用Windows)」項目模板來取得成功。 –
問題是我需要引發此事件,並且此事件將修改UI線程上的對象。如果我不打算使用「CoreApplication.MainView.CoreWindow.Dispatcher.RunAsync」,我得到了跨線程訪問 – frenk91