首页 > 编程语言 > 详细

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

时间:2020-11-06 20:19:25      阅读:47      评论:0      收藏:0      [点我收藏+]

实现代码如下,点击按钮,启动子线程,通过修改标红的变量,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.net子线程调用winhttp进行通讯同步和异步的对比

原文:https://www.cnblogs.com/shuixing/p/13938633.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!