1

ユーザーがボタンをクリックすると、パネルが自動的に更新される RAP (2.3.1) アプリケーションがあります。ただし、ユーザーがボタンを複数回クリックするのが速すぎる場合 (またはサーバーでのネットワーク/更新に時間がかかる場合)、アプリケーションがクラッシュするか、「間違ったスレッド アクセス」でエラーになることがあります。これは、ボタンの選択ハンドラーが複数回クリックするため、複数のスレッドで実行されます。更新自体は、GUI 要素を更新する一連のプロセスです (つまり、asyncExec やその他のものはありません)。

RAP がユーザーのセッションへのアクセスをシリアル化することを期待していますが、そうではないようです。アプリケーションのイベント ハンドラー (またはすべてのイベント ハンドラー) を手動で同期する必要があるか、変更する必要がある設定はありますか?

4

1 に答える 1

2

RAP の UI リクエストは同期され (こちらを参照)、同じ UI スレッドで実行されることが保証されます。

不正なスレッド アクセスは、ボタンをクリックするのが速すぎるだけで誘発できるものではありません。問題は、選択リスナーによってトリガーされたコードにあるはずです。問題を再現するための最小限のスニペットを投稿していただけますか?

于 2015-05-01T09:56:29.743 に答える