SignalR Core InvokeAsync зависает - PullRequest
0 голосов
/ 21 мая 2019

Ранее я использовал метод SendAsync для вызова моего концентратора SignalR Core без проблем. Я понял, что если на сервере будет ошибка, о которой я никогда не узнаю от клиента с SendAsync, то решил использовать InvokeAsync с точно такими же аргументами. Когда вызывается InvokeAsync, я могу сказать, что мой концентратор вызывается, и он обрабатывается правильно, но вызов на стороне клиента ("await InvokeAsync") зависает. Он просто блокируется и никогда не доходит до следующей строки кода. Это приложение WPF. Что может происходить? await SendAsync немедленно возвращается и никогда не блокируется таким образом.

1 Ответ

0 голосов
/ 22 мая 2019

Я нашел проблему.Оказалось, это потому, что сообщение, отправляемое из приложения WPF, также принималось приложением WPF, что вызывало проблему с блокировкой, когда я пытался обновить пользовательский интерфейс при получении сообщения.Я обновил свой код получения, чтобы использовать Dispatcher.BeginInvoke вместо Dispatcher.Invoke, и теперь он работает.Это не было проблемой, когда я звонил SendAsync из клиента SignalR.

...