używam Asp.Net SignalR 2.SignalR dysponowania HubConnection
W kliencie NET (używam Microsoft.AspNet.SignalR.Client) jest umieszczenie HubConnection konieczne?
Próbowałem to robić, ale to zajmuje zbyt dużo czasu ....
używam Asp.Net SignalR 2.SignalR dysponowania HubConnection
W kliencie NET (używam Microsoft.AspNet.SignalR.Client) jest umieszczenie HubConnection konieczne?
Próbowałem to robić, ale to zajmuje zbyt dużo czasu ....
Nie jest konieczne, jeśli dzwonisz pod numer Stop()
.
Zobacz https://msdn.microsoft.com/en-us/library/dn235890(v=vs.118).aspx
inaczej, należy zawsze utylizować IDisposable
obiektów po zakończeniu ich stosowania.
Jeśli to trwa zbyt długo (to znaczy, blokowanie bieżącego wątku), po prostu zatrzymać go na Task
, coś takiego:
Task.Run(()=>hubConnection.Stop());
Co masz na myśli przez to zajmuje zbyt dużo czasu? Czy możesz szczegółowo? Czy otrzymujesz wyjątek timeout?
Z książki C# 5.0 w pigułce:
Bezpieczna zasada do naśladowania (w prawie wszystkich przypadkach) jest „w razie wątpliwości wyrzucać”. Jednorazowe obiekt -jeżeli to może mówić-by powiedz:
Kiedy skończysz ze mną, daj mi znać. Jeśli po prostu zostanie porzucony, mogę spowodować problemy w przypadku innych wystąpień obiektu, domeny aplikacji, komputera , sieci lub bazy danych!
Powiedziałbym, że zbywamy, jeśli nie jest to rozdanie konkurencyjne. Przydałoby się również dowiedzieć, co zajmuje tak dużo czasu.
Właściwie, to po prostu blokuje uruchomiony wątek i wtedy kończy się pomyślnie. Nie są zgłaszane żadne wyjątki. Nie mogę się domyślić, dlaczego zabieranie czasu zabiera tyle czasu. – cangosta
usunięcie obiektu zajmuje 30 sekund. – cangosta
W rzeczywistości 30 sekund to domyślny limit czasu dla operacji utylizacji. – cangosta
Dzięki za odpowiedź. Nie nazywam 'stop()', gdy jest to dokładnie to samo, co 'Dispose()'. From the signalr source code 'protected virtual void Dispose (bool disposing) { if (disposing) { Stop(); } } ' – cangosta
Utylizacja połączenia w osobnym zadaniu działa, ale czy jest to powszechna praktyka? – cangosta
@cangosta, tak, jest powszechne, jeśli nie chcesz, aby zablokowanie go zablokowało. –