簡體   English   中英

在Windows Phone 8中調用同步方法中的異步方法

[英]call async methods in synchronized method in windows phone 8

這是在同步方法中調用異步方法的更好方法。

public bool Sync() 
{ 
  return Task.Run(() => MyClass.IsSyncDone()).Result; 
}

它會導致死鎖嗎? 我真的需要知道更好的方法。 因為我不想對系統調用進行異步,即應用程序啟動,注冊方法等等,任何人都可以幫忙。

如果您不需要回復,那么您可以輕松地執行以下操作:

public bool Sync() 
{ 
    Task.Run(async () => await MyClass.DoSync());
}

您需要響應將意味着更復雜的代碼。 在沒有看到完整代碼的情況下,很難提供具體的示例,但通常最好不將這種長時間運行的復雜異步操作與同步操作聯系起來。
將延遲傳遞給async方法以通過任務創建,或者讓async方法在完成時更新viewmodel的綁定屬性或觸發自定義事件。

重要的是不要在應用程序實時循環事件處理程序中執行任何可能長時間運行的異步操作,就好像這些操作需要很長時間才會導致應用程序被強制終止或應用程序數據處於不一致狀態。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM