2017-12-25 20 views
-1

このコードは、ページが開く前に呼び出されるAppearingと呼ばれ、ページが終了する前にDisappearingが呼び出されます。私には明確ではないので、私は知っていると思います。 Device.BeginInvokeOnMainThread(()=>タスクの後にクリーンアップする必要がありますか?

がありますいずれかがこのために必要なクリーンアップや、私は仕事が完全にクリアし、MainThreadにそこにぶら下がっ残されていないことを確認するための場所で何かを置く必要がありますか?

public void Appearing() 
    { 
     Device.BeginInvokeOnMainThread(() => ShowCards().ContinueWith((arg) => { })); 
    } 

    public void Disappearing() 
    { 
     App.showCardsWhile = false; 
    } 

    public async Task ShowCards() 
    { 
     App.showCardsWhile = true; 
     while (App.showCardsWhile) 
     { 
      App.DB.GetData(); 
      // Display the data 
     } 

答えて

2

どのような種類のクリーンアップについて話していますか?アプリケーションの外部に何かを実行/管理しないで、アンマネージドリソースを割り当てないでください。あなたのUIがそこで生まれたという事実を除いて、通常のスレッドです。

さらに重要な質問は、データベースクエリとデータレンダリングを混ぜる理由がないことです。メインスレッドにメソッドをディスパッチしなければならない理由があるように感じます。

関連する問題