私は、ユーザーがタブアイテムをクリックしたときにクラスのインスタンスを作成する状況があります。このクラスにはグラフをプロットする関数が含まれており、非常に時間がかかり、非同期で書かれています。最初のコードが実行されているのを待つ方法は?
問題はユーザーが最初にタブをクリックしてクラスがインスタンス化され、長いプロセスが長い時間働く一方で、以前の非同期タスクが壊れておらず、同じタブアイテムで再度クリックされたということです。
この状況では、前回の非同期タスクが終了してから次のタップすると、最初の非同期処理が終了した後にインスタンスを作成する必要があります。
コードはここにある:
if (selectedTabIndex == 2) //What is the user selected second time whil the previous task is still not finshed ?
{
DrawGraph obj= new DrawGraph(selectedItem.Name);
}
どこかDrawGraphクラスのコンストラクタで
私が行っている:ユーザーはこのタブ項目数= 2、それを二回クリックしたときに
public DrawGraph(string Name)
{
timeConsumingProcess(Name);
}
public async void timeConsumingProcess(string Name)
{
await startTaimeConsumingProcess();
}
は何私が欲しいのです以前の非同期タスクがfinshになるまで待たなければならず、次に再びDrawGraphクラスをインスタンス化する必要があります。 asyncを再起動してください。
どのように達成するには?
なぜタブを無効にしないのですか? –
@HristoYankovええ、私はその考えを持っていたが、それは私の上級生に受け入れられなかった。 –