![]() |
![]() | ![]() | ![]() | ![]() | ![]() | ![]() | ![]() |
| Welcome to Windows Vista Forums. Our forum is dedicated to helping you find solutions with any problems, errors or issues you are experiencing with Windows Vista. The Vista forum also covers news and updates and has an extensive Windows Vista tutorial section that covers a wide range of tips and tricks. |
| |||||||
![]() |
| |
| | #1 (permalink) |
| | Thread in VB.NET won't stop (w/code) I have a windows application that does not stop running whenever the application exits. Could someone fill me in on what I am doing wrong? Here is the relevant code: ================================= Private m_thTCP As Thread Private m_listener As TcpListener Public Sub New() InitializeComponent() ' This call is required by the Windows Form Designer. m_thTCP = New Thread(AddressOf TCPServer) ThreadStart() End Sub Private Sub Form1_FormClosing(ByVal sender As Object, ByVal e As System.Windows.Forms.FormClosingEventArgs) Handles Me.FormClosing ThreadStop() End Sub Private Sub Restart_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles RestartButton.Click ThreadRestart() End Sub Private Sub ThreadStop() ' Stopping TCP Listener Service Try If (m_thTCP.ThreadState <> ThreadState.Stopped) Then Dim i As Int16 = 0 m_listener.Stop() Application.DoEvents() Thread.Sleep(200) While ((i < 100) And (m_thTCP.ThreadState <> ThreadState.Stopped)) ' gives thread 5 secs to stop! m_thTCP.Abort() Application.DoEvents() Thread.Sleep(50) i += 1 End While End If Catch ex As Exception MsgBox(ex.Message) Finally Console.WriteLine("ThreadState is {0}", m_thTCP.ThreadState.ToString()) m_thTCP = Nothing End Try End Sub Public Sub ThreadRestart() ' Restarting TCP Listener Service Try ThreadStop() m_thTCP = New Thread(AddressOf TCPServer) ThreadStart() Catch ex As Exception MsgBox(ex.Message) End Try End Sub Private Sub ThreadStart() Try m_thTCP.Start() Catch ex As Exception MsgBox(ex.Message) End Try End Sub Private Sub TCPServer() Try ' Starting TCP Listener from thread m_listener = New TcpListener(IPAddress.Any, m_port) m_listener.Start() While True Dim client As TcpClient = m_listener.AcceptTcpClient() ' Waits until data is available on the network Dim stream As NetworkStream = client.GetStream() Dim bytes(client.ReceiveBufferSize) As Byte stream.Read(bytes, 0, CInt(client.ReceiveBufferSize)) Dim data As String = Encoding.ASCII.GetString(bytes) data = data.TrimEnd(data.Substring(data.Length - 1)) If (data.Substring(3) <> String.Empty) Then Dim item As String = data.Substring(3) If (item <> "") Then Console.WriteLine("Data Read: {0}", item) End If End If stream.Close() client.Close() End While Catch ex2 As SocketException Console.WriteLine("SocketException: {0}", ex2) Catch ex1 As ThreadAbortException ' dismiss this one Exit Sub Catch ex As Exception MsgBox(ex.Message) Finally Try m_listener.Stop() Catch ex As Exception ' Throws Exception if it never was opened End Try End Try End Sub |
My System Specs![]() |
![]() |
| Thread Tools | |
| |
Similar Threads | ||||
| Thread | Forum | |||
| stop error code 0x0000C1F5 | Vista General | |||
| Blue Screen Stop Code 124 | Vista General | |||
| Stop Code - Can't install Vista | Vista installation & setup | |||
| Stop Code 9C | Vista General | |||
| Error Message:STOP Thread stuck in device driver Q293078 | Vista hardware & devices | |||