VB.NET 多线程同步问题
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
url = "http://topic.csdn.net/t/20041007/15/3431114.html"
Dim th As New System.Threading.Thread(AddressOf URL1)
th.Start()
MsgBox(shuju)
End Sub
Private Sub URL1()
Dim s As New System.Net.WebClient()
shuju = System.Text.Encoding.GetEncoding("gb2312").GetString(s.DownloadData(url))
End Sub
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click url = "http://topic.csdn.net/t/20041007/15/3431114.html" Dim th As New System.Threading.Thread(AddressOf URL1) th.Start() While th.IsAlive Application.DoEvents() System.Threading.Thread.Sleep(5) End While MsgBox(shuju) End Sub Private Sub URL1() Dim s As New System.Net.WebClient() shuju = System.Text.Encoding.GetEncoding("gb2312").GetString(s.DownloadData(url)) End Sub
[解决办法]
你把MsgBox放到线程里提示。。。就不卡了。本来也应该是子线程提示主线程完事的。。。
当然直接用MsgBox在子线程里好不好另说。
[解决办法]
Public Class Form1
Dim url As String
Dim shuju As String
Private Delegate Sub showMsgbox(ByVal msg As String)
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
url = "http://topic.csdn.net/t/20041007/15/3431114.html"
Dim showmsgbox As showMsgbox = AddressOf URL1
showmsgbox(url)
End Sub
Private Sub URL1()
Dim s As New System.Net.WebClient()
shuju = System.Text.Encoding.GetEncoding("gb2312").GetString(s.DownloadData(url))
MsgBox(shuju)
End Sub
End Class