UI が応答しなくなるため、バックグラウンド プロセスとして長いプロセスを実行しています。
問題は、プロセスがバックグラウンド プロセスとして実行されている間に、待機カーソルを表示したいということです。ディスパッチャーを使用してカーソルを更新しようとしましたが、機能しません。
私のプロセスはボタンのクリックで実行されます:
private void btnStartAsyncOperation_Click(object sender, EventArgs e)
{
backgroundworkerprocess.RunWorkerAsync();
}
backgroundworkerprocess イベントで:
void backgroundworkerprocess_DoWork(object sender, DoWorkEventArgs e)
{
this.dispatcher.invoke(DispatcherPriority.Background,
new action((delegate) {
this.cursor = cursors.wait
})
);
}
これにより、フォームのどこにでも待機カーソルが表示されることを期待していましたが、マウスがボタンの上にあるときにのみ表示されます。