sto utilizzando Asp.Net SignalR 2.SignalR smaltire HubConnection
In un client .NET (sto usando Microsoft.AspNet.SignalR.Client), sta disponendo un HubConnection necessaria?
ho provato a fare questo, ma ci vuole troppo tempo ....
sto utilizzando Asp.Net SignalR 2.SignalR smaltire HubConnection
In un client .NET (sto usando Microsoft.AspNet.SignalR.Client), sta disponendo un HubConnection necessaria?
ho provato a fare questo, ma ci vuole troppo tempo ....
Non è necessario se si chiama Stop()
.
Vedi https://msdn.microsoft.com/en-us/library/dn235890(v=vs.118).aspx
in caso contrario, si dovrebbe sempre Smaltire IDisposable
oggetti quando si è fatto con loro.
Se si sta impiegando troppo tempo (vale a dire, bloccando il thread corrente), basta fermarsi su una Task
, qualcosa come:
Task.Run(()=>hubConnection.Stop());
Che cosa si intende per ci vuole troppo tempo? Puoi dettagli? Stai ricevendo un'eccezione di timeout?
Dal libro C# 5.0 in a Nutshell:
Una regola di sicurezza da seguire (in quasi tutti i casi) è “in caso di dubbio, smaltire.” Un oggetto usa e getta -se potesse parlare, avrebbe di 'quanto segue:
Quando hai finito con me, fammi sapere. Se semplicemente abbandonato, potrei causare problemi ad altre istanze di oggetti, al dominio dell'applicazione, al computer , alla rete o al database!
Direi di smaltire se non è un dealbreaker. Potrebbe anche essere utile per scoprire cosa ci vuole così tanto tempo lì.
In realtà, è a pochi isolati il filo conduttore e poi finisce con successo. Non vengono lanciate eccezioni. Non riesco a capire perché ci vuole così tanto tempo per disporne. – cangosta
ci vogliono 30 secondi per smaltire l'oggetto – cangosta
In effetti, 30 secondi è il timeout predefinito per l'operazione di smaltimento. – cangosta
Grazie per la risposta. Non sto chiamando 'stop()', una volta è esattamente la stessa cosa di 'Dispose()'. Dal codice sorgente del segnale 'protected virtual void Dispose (bool disposing) { if (disposing) { Stop(); }} ' – cangosta
Smaltire la connessione in un'attività separata fa il trucco, ma è una pratica comune? – cangosta
@cangosta, sì, è comune se non si desidera eliminarlo per bloccarlo. –