其他分享
首页 > 其他分享> > vb.net子线程调用winhttp进行通讯同步和异步的对比

vb.net子线程调用winhttp进行通讯同步和异步的对比

作者:互联网

实现代码如下,点击按钮,启动子线程,通过修改标红的变量,False同步通讯,True异步通讯。

经过比较发现,无论此处是同步还是异步,子线程都是要等待有回应结果以后才继续向后执行的,这也就符合了程序执行的合理性,防止出现信息交叉错位。

但是,如果是单线程的应用程序(只有默认的一个主线程),使用winhttp进行通讯时,同步通讯和异步通讯还是有很大区别的。同步通讯,主线程会等待回应结果才可以做其他的事情,有回应结果以后继续后续代码的执行,如果等待结果的时间较长,会出现界面卡滞现象。异步通讯,主线程在等待期间可以做其他的事情,就不会出现界面卡顿的情况,有回应结果以后代码继续执行。

Public Class Form1
Dim Thread As New System.Threading.Thread(AddressOf WRInterval)
Dim i As Integer
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
Thread.IsBackground = True
Thread.Start()
End Sub
Public Sub WRInterval()
While i < 10
Dim http
http = CreateObject("WinHttp.WinHttpRequest.5.1")
http.open("get", "https://stackoverflow.com", False)
http.send("")
http.WaitForResponse()
Console.WriteLine(i.ToString)
i = i + 1
End While
End Sub
End Class

标签:异步,vb,通讯,http,Thread,Dim,同步,线程,winhttp
来源: https://www.cnblogs.com/shuixing/p/13938633.html