UI スレッドで実行する必要がある実行時間の長いメソッドがあります。(デベックス - gridView.CopyToClipboard()
)
コピー中に UI をレスポンシブにする必要はありません。スプラッシュ スクリーンを追加して、ユーザーが退屈しないようにしました。
このプログラムを実行すると、すべてうまくいきます。
別のプログラムを実行すると、新しいプロセスが開始され、その上でプログラムが実行されると、問題が発生します。タイトルをコピーして数秒後に (応答なし) と表示され、マウス カーソルがビジー状態になっている場合は、もちろん数秒以内にクリアされますが、ユーザーにプログラムの誤解を与えるので、それを取り除きたいと思います。が故障しています。
作成したプロセスの「タイムアウト」を設定する方法はありますか?
編集:
メイン プログラムは次のコードを呼び出します。
fillsProcess = new Process();
fillsProcess.StartInfo.FileName = Application.ExecutablePath;
fillsProcess.Start();
fillsProcess では、特定のボタンがクリックされると、次のコードが呼び出されます。
gridViewToCopy.CopyToClipboard();
このコード行の処理には時間がかかり、数秒後に fillsProcess のウィンドウが応答しなくなったように見えます。これは、このメソッドが UI スレッドで実行されるためです。
2番目の編集:
どうやら(そして本当に非常に理解できるように)
gridViewToCopy.CopyToClipboard();
この問題を引き起こす唯一の方法ではありません。多くの Devex メソッドは UI スレッドで実行する必要があります (例: データの並べ替え、データのフィルタリング)
したがって、特定の解決策を提供してくれた人に感謝します (それが機能したかどうかに関係なく) が、私の元の質問が再び表示されます。
タイムアウト時間を変更したり、何らかの方法で「応答なし」の大失敗全体を制御したりする方法はありますか?