【发布时间】:2014-05-10 20:26:06
【问题描述】:
我正在开发一个微型 UDP 控制台来发送一些数据来测试一些 GPRS 设备,所以我修改了我在 CodeProject 中找到的一个示例,它使用一个线程;但是当我想退出应用程序时遇到问题,即使我做了类似的事情,tread 也拒绝停止
If UdpOpen Then
ThreadReceive.Abort()
Me.Dispose()
UdpOpen = False
End If
它停在第一行代码
Private Sub UdpReceive()
Dim receiveBytes As [Byte]() = receivingUdpClient.Receive(RemoteIpEndPoint) '<--Halt here
IpRemote(RemoteIpEndPoint.Address.ToString)
Dim BitDet As BitArray
BitDet = New BitArray(receiveBytes)
Dim strReturnData As String = System.Text.Encoding.ASCII.GetString(receiveBytes)
If UdpOpen Then
StartUdpReceiveThread(CInt(RemotePortLbl.Text))
End If
PrintLog(strReturnData)
End Sub
所以我做了一些研究,通常在这个网页中找到了解决方案 Stop a thread that prevents program to close?
而且,正如第一条评论所说,我将 isBackground 属性设为 True 并且它可以工作,现在的问题是为什么?
是否有人更深入地了解它的工作原理?
【问题讨论】:
标签: vb.net multithreading vb.net-2010