免責事項(完全に編集/削除可能)
私は宿題をしましたが、私の認識の限りでは、私が知りたいこと自体を見ることができません(これは少し驚くべきことですので、親切な魂が私を複製としてフラグを立てると確信しています-事前に謝罪を受け入れてください、ハハ)。
背景と予想される問題
Outlookを起動すると、CRMDynamicsから更新を実行しています。これにはしばらく時間がかかります。そこで、更新をスレッドに入れることにしました。想定どおりに機能しますが、リボンにボタンがあり、ユーザーが手動で更新を呼び出すことができます。熱狂的なユーザーを予想して、元の更新が完了する前に誰かがボタンをクリックし、あらゆる種類の排泄物がガス再分配装置に当たる可能性があることを認識しています。
推奨される解決策
それを避けるために、私は次のように私有財産を置きました。
private bool KeepYourPantsOn { get; set; }
上記のプロパティがtrue
(更新スレッドを開始する直前に設定されている)である限り、必死のクリックはすべて無視されるか、落ち着いて有益な情報によって処理されます。
MessageBox.Show("Yes, yes... Updating still... Keep your pants on.");
ただし、スレッドが完了するとすぐに、プロパティを切り替えてfalse
、ユーザーがOutlookを手動で更新できるようにします。
実装上の問題
私の悩みの種は、の値を切り替えるために呼び出すなどのメソッドがOnFinished
見つからないことです。さらに、私はそれを解決する方法について提案された解決策を実際に見たことがありません(または、むしろ-私は解決策を認識していません-スレッドプログラミングの領域内の無知のために、それがそれであることに気付かずに解決策を見たかもしれません) 。WhenDone
KeepYourPantsOn