0

画面上に 4 つの異なるユーザー コントロールを持つ C# winform アプリケーションがあります。これらの各ユーザー コントロールには、datagridview コントロールが含まれています。ユーザーがこれら 4 つのコントロールのいずれかでセルの値を更新すると、セルの値を画面の 5 番目のフォームに送信するカスタム イベントが発生します。

この 5 番目のフォームは、Excel スプレッドシートに非常に似ています。5 番目のフォームは、ペイン/ウィンドウに送信された新しい値を表示する必要があります。問題は、4 つのユーザー コントロールのいずれかからデータを送信することではありません。これは動作し、5 番目のフォームに反映されます。

ただし、データを送信するイベントが発生すると、ユーザー入力が数秒間停止します。5thフォームはセルの更新で忙しいと思います。したがって、私の質問は、コントロールのようなスプレッドシートに新しい値を送信するためにメッセージ キューまたは同様のもの (wcf) を実装する場合、その 5 番目のコントロールがデータを取得し (おそらくアプリケーション アイドル イベントで)、エンド ユーザーの入力を遅くしないかどうかです。 4 つのメイン コントロールのいずれか、またはフォームがすべて同じ UI スレッドで実行されているために、同じ問題が発生するだけでしょうか。5 番目のコントロールが非表示になっている場合に高速になるかどうかを確認するために、いくつかのテストを行いましたが、同じ結果が表示されます。また、いくつかのタイミング チェックを行いましたが、間違いなく Value_Changed イベントを発生させた後で、システムが非常に遅くなります。

この問題にアプローチして解決する方法についてのアイデアはありますか?

4

1 に答える 1