0

次の構造の単純なイントラ Web プロジェクトがあります。

Usersession :データベースをチェックして変更をロードし、データのフォーマットを行い、結果をメモリ内のテーブルに入れるタイマーを用意します。

MainForm : IWTimer を使用して、Usersession のメモリ内テーブルが変更されたかどうかを確認し、必要に応じてその内容を更新します。

IWTimer を使用してデータベースを直接チェックすることはありません。これは、ユーザー エクスペリエンスに影響を与えるブラウザーでの待ち時間が望ましくないためです。

問題は、usersession にメッセージ キューがなく、通常のタイマーが機能しないことです。そこで、代わりに Jedi VCL の JvThreadTimer を使用しました。UserSession.Create イベントで作成し、Destroy イベントで停止して解放します。それはうまく機能します。

ただし、サーバー アプリケーションを閉じると、すぐに EidClosedSocket が表示され、「切断されました」というメッセージが表示されます。MainForm/Usersession/ServerControl ユニットの Destroy Events の前に例外が発生したため、例外をトリガーする前にタイマーを停止する方法が見つかりません。

ユーザーセッションでサーバー側のタイマーを設定する適切な方法はありますか、またはブラウザの使用に影響を与えない定期的なデータベースチェックを行う他の方法はありますか?

助けてくれてありがとう。

4

1 に答える 1