1

ユーザーがオブジェクトを作成、編集、削除できる Silverlight アプリケーションに取り組んでいます。彼らが行った変更は、4 分ごとに処理されるキューに入れられます。更新が処理されると、非同期 Web メソッド呼び出しを介して送信され、一度に 1 つずつ SQL データベースに保存されます。最初の更新が終了すると、次の更新が開始されます。
ユーザーが変更を行い、4 分間のタイマーが切れる前にブラウザー アプリを終了すると、問題が発生します。現在、変更は失われつつあります。

私は、私が行った前にこれに取り組んでいた人に基づいて構築し、Dispose メソッドと Finalize メソッドを調べて、ファクトリがシャットダウンされているときに更新プロセスを開始しようとしましたが、Web サービス呼び出しの非同期の性質のために機能していません. 必要なオブジェクトが既に破棄されているというエラーが表示されます。

ユーザーがWebページを閉じたり更新したりしようとしたときに、webmethodを使用してupdatequeueにデータを保存する方法を探しています。キューが更新でいっぱいになるとは思っていません。これは通常、一度に数時間実行されるアプリケーションです。

4

1 に答える 1

1

Javascript を使用して、ユーザーがページを離れないようにすることができます。StackOverflowがそれを行います(回答を編集してページを離れてみてください)。これは、ブラウザを閉じるだけでなく、ページのナビゲーションでも機能します。Javascript から、キューに入っているデータを保存するように Silverlight アプリに通知することもできます (Silverlight は Javascript へのメソッドの公開をサポートしています)。

Q. 4 分ごとに保存するという動作は、Silverlight アプリでは少し奇妙です。一度に1人のユーザーが実行するように設計されていると思います。より頻繁に保存することを妨げているのは何ですか?

于 2011-06-14T15:15:38.947 に答える