ストアド プロシージャ (> 5 分) を実行する必要があり、(silverlight) アプリケーションを「生きている」ままにしたい状況があります。
これは、少なくとも同じ DB からいくつかのデータを再度要求するまで、UI スレッドが応答するように非同期 WCF サービスを使用して行います。
次に、SPが終了した後にのみ、他のリクエストが実行されます
どうにかして(SQLで)ストアドプロシージャを他のクエリと一緒に実行できるように設定できますか?
ありがとう
編集:
- DB は SQL Server 上にあります
[OperationContract(AsyncPattern = true)]
service メソッドで Linq2Sql モデルから SP を開始する- その他のデータは WCF Ria Services (Linq2SQL モデルの DomainService、同じ接続文字列) で処理されます。
編集2:
@ dan1111: テストでは、WCF サービスが Silverlight に結果を返す時点まで、DomainContext が「フリーズ」することがわかりました。
最初に:
- Thread.Sleep(15000) で WCF Async メソッドを呼び出します
- アプリケーションは引き続き正常に動作します
- データが必要なページに移動すると、DataContext.Load() を要求します
- DataContext.IsLoading が true になる
- 残りの 15 秒を待たなければなりません
- これで、前の DataContext.Load に対して完了イベントが発生します
ご意見をお聞かせください