長い操作の実行中にトーストを介して待機中のメッセージを表示しようとしています。私は BackgroundWorker を使用しています。このコードは、ListView_ItemClick イベント ハンドラー内にあります。
var bgWait = new BackgroundWorker();
bgWait.DoWork += bgWait_DoWork;
bgWait.RunWorkerAsync();
bgWait.RunWorkerCompleted += bgWait_Completed;
bgWait_DoWork イベント ハンドラーのコードは次のとおりです。
private void bgWait_DoWork(object sender, DoWorkEventArgs e)
{
var toastWait = Toast.MakeText(this, "Please wait", ToastLength.Long);
toastWait.SetGravity(GravityFlags.Top & GravityFlags.Center, 0, 0);
toastWait.Show();
TimeConsumingOperation();
toastWait.Cancel();
}
デバッグ モードで実行すると、bgWait_DoWork の最初の行にしか到達していないようです - "var toastWait = Toast.MakeText(this, "Please wait", ToastLength.Long);" - そして、bgWait_Completed イベント ハンドラにジャンプします。
なぜこれが起こっているのですか?
ありがとう