おそらく簡単な解決策についての長い質問ですが、ここに行きます...
複数のファイルを選択してサーバーに送信するためのカスタムメイドの Silverlight コントロールがあります。WebCLient コントロールの OpenWriteAsync メソッドを使用して、一般的なハンドラー (FileReciever.ashx) にファイルを送信します。
基本的に、Silverlight コードは各ファイルに対して次のような処理を行います。
WebClient client = new WebClient();
client.OpenWriteCompleted += (sender, e) =>
{
PushData(data, e.Result);
e.Result.Close();
data.Close();
};
client.OpenWriteAsync(handlerUri);
サーバー側のハンドラーは、単に受信ストリームを読み取り、結果のバイト配列でさらに処理を行います。
問題は、すべてのデータがネットワーク経由で送信されるとすぐに、クライアント側の OpenWriteCompleted が実行されることです。私のコードは次のファイルに続きます。私が本当に望んでいるのは、ASHX ハンドラーがその要求の処理をすべて完了するまで待つことです。それ、どうやったら出来るの?WebClient の待機メカニズムはありますか? ハンドラーの HttpContext で実行できるコールバックはありますか? 他の種類の転送技術を使用する必要がありますか? ご意見をお聞かせください!