У меня возникла проблема при загрузке или загрузке файла (WebClient.DownloadFileAsync|UploadFileAsync или с помощью HttpWebRequest) и одновременном вызове методов SignalR-hub:
Вызовы SignalR были остановлены до завершения загрузки файла. Похоже на то: все вызовы signalr ставятся в очередь. Все вызовы в очереди выполняются далее (после загрузки файла).
Мой фрагмент кода:
hubProxy.Invoke("TraceDocumentUploadingRequest", callerId, fileName, "File loading started ", 0);
DownloadFileByKey(fileKey, (progressPercentage, bytesSent) => { hubProxy.Invoke("TraceDocumentUploadingRequest", callerId, fileName, "File loading in progress", progressPercentage); });
hubProxy.Invoke("TraceDocumentUploadingRequest", callerId, fileName, "File loading finished", 100);
Второй вызов метода хаба «TraceDocumentUploadingRequest» (в обработчике загрузки файла) будет выполнен на хабе после завершения загрузки файла.
Обработчик загрузки файла выполняется как в текущем потоке, так и в другом (связанном с реализацией метода DownloadFileByKey) - результат один и тот же.
Как я могу избежать этого поведения и вызвать вызовы хаб-метода в нужное время?