Ho una discussione che si spegne e tenta di stabilire una connessione. Nel thread, effettuo una chiamata a una libreria di terze parti. A volte, questa chiamata si blocca e non ritorna mai. Sul thread dell'interfaccia utente, desidero essere in grado di annullare il tentativo di connessione interrompendo il thread, che dovrebbe interrompere la chiamata bloccata alla libreria di terze parti.Come gestisci un thread che ha una chiamata bloccata?
Ho chiamato Thread.Abort, ma ora ho letto che Thread.Abort funziona solo quando il controllo ritorna al codice gestito. Ho osservato che questo è vero, perché il thread non si interrompe mai, e sono stato seduto su Thread.Entra per dieci minuti adesso. Cosa dovrei fare con questo filo appeso? Dovrei semplicemente annullare il riferimento e andare avanti? Mi piacerebbe essere il più pulito possibile
"Togli e nuke il sito dall'orbita: è l'unico modo per esserne sicuri." In effetti, tu sei corretto; questo è l'unico modo sicuro per terminare il codice di comportamento anomalo. Thread.Abort non è garantito per interrompere effettivamente il thread di comportamento anomalo; una discussione veramente maleducata può dirottare l'interruzione. Anche abbattere un appdomain non fa necessariamente quello che vuoi. Se si deve assolutamente, in modo positivo, uccidere codice con comportamenti scorretti, è necessario isolarlo in un processo eseguibile. –
Grazie Ripley ... Voglio dire ... Eric ;-p (Avrei dato la risposta di Hudson, ma dovrei quindi usare gli strumenti del moderatore su me stesso ...) –