WPF の Window.IsEnabled プロパティについて質問があります - C# 5.0、.NET4.5。
次のシナリオがあります(簡略化):
1) ボタン付きフォーム
2) ユーザーが長時間の計算操作をトリガーする (DB からデータを取得する)
3) ユーザーは新しいデータとやり取りできる
私はこれを次の方法で実装しました:
1) Click ハンドラーは (ユーザーの操作のために) ウィンドウを無効にし、操作を非同期的に開始します (これは同期的に行うことができますが、問題ではありません)。
2)非同期操作が完了すると、ウィンドウは有効になります( myWindowInstance.IsEnabled = trueを介して)
そして私の問題は:
myWindowInstance.IsEnabled = true には約 20 秒かかります。フェッチされたデータのウィンドウに dataGridView があることに注意する必要があります。ただし、勝利を無効にして再度有効にしない限り、これには約 1 秒かかります。もう 1 つの興味深い点は、小さなローカル DB に接続すると、win.IsEnabled セッターがすばやく実行されることです。これとは逆に、リモートの巨大な DB を使用する場合、前述のように、この操作には 20 秒かかります。どちらの場合も、100 行だけをフェッチします。
単純なセッターに非常に時間がかかる理由を知っている人はいますか?
アイデアをありがとう!