Возможно, длинный вопрос для простого решения, но здесь идет ...
У меня есть пользовательский элемент управления silverlight для выбора нескольких файлов и отправки их на сервер. Он отправляет файлы в общий обработчик (FileReciever.ashx), используя метод OpenWriteAsync элемента управления WebCLient.
Обычно код 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 в обработчике? Должен ли я использовать какой-то другой метод передачи? Пожалуйста, совет!