Windows Vista Forums
Vista Forums Home Join Vista Forums Windows 7 Forum Vista Tutorials Tags
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.

Go Back   Vista Forums > Misc Newsgroups > .NET General

Vista - Thread in VB.NET won't stop (w/code)

Reply
 
Old 04-17-2008   #1 (permalink)
jp2msft


 
 

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 SpecsSystem Spec
Reply

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


Vista Forums is an independent web site and has not been authorized,
sponsored, or otherwise approved by Microsoft Corporation.
"Windows Vista", the Start Orb, and related materials are trademarks of Microsoft Corp.
© Designer Media Ltd

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46