Chiusura Thread

venerdì 04 novembre 2005 - 16.51

mimmo21 Profilo | Junior Member

Sto utilizzando i socket per potermi collegare ad un server tramite TPC con VB.NET. Creo un socket e faccio connect () e subito dopo creo un Thread per il socket che utilizza la funzione Ascolta. Faccio poi la chiusura del socket utilizzando shutdown() e poi Close (). A questo punto dovrei interrompere pure il thread relativo perche ora dentro la funzione Ascolta() mi dà l'eccezione "Operazione di blocco interrotta da una chiamata a WSACancelBlockingCall". COme devo fare?
Grazie
Avete poi dei link dove leggere delle info sui socket?

Brainkiller Profilo | Guru

>Sto utilizzando i socket per potermi collegare ad un server tramite
>TPC con VB.NET. Creo un socket e faccio connect () e subito
>dopo creo un Thread per il socket che utilizza la funzione Ascolta.
>Faccio poi la chiusura del socket utilizzando shutdown() e poi
>Close (). A questo punto dovrei interrompere pure il thread
>relativo perche ora dentro la funzione Ascolta() mi dà l'eccezione
>"Operazione di blocco interrotta da una chiamata a WSACancelBlockingCall".
> COme devo fare?

Non ho ben capito se il Thread avviato è nella applicazione client o server. Se è nell'applicazione client nel momento in cui la funzione che viene esgeuita ritorna, automaticamente il Thread viene chiuso e abbattuto in modo "gracefully". Non dovrebbe esserci bisogno di una forzatura con lo Shutdown.

Altra soluzione è utilizzare Socket Asincroni a differenza dei sincroni che stai utilizzando perchè ogni comando receive o send è "blocking" quindi non ritorna e blocca l'applicazione fino a quando non viene inviato o ricevuto rispettivamente qualche dato.

Ciao

David De Giacomi
Microsoft MVP
http://blogs.dotnethell.it/david/
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?

Dopo esserti registrato potrai chiedere
aiuto sul nostro Forum oppure aiutare gli altri

Consulta le Stanze disponibili.

Registrati ora !
Copyright © dotNetHell.it 2002-2024
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5