在VB中實現非同步呼叫

2022-01-17 14:52:16 字數 1015 閱讀 1456

vb本身是不支援多執行緒的。但是vb中的部件有程序內及程序外的區分,因此這裡我使用程序外部件來實現非同步呼叫。

伺服器端**,新建乙個activeexe工程,加入乙個窗體,窗體中存放乙個timer控制項

新增乙個類模組。**如下

private withevents m_timer as timer

public event mytaskresult(result as long)

private j as long

private sub class_initialize()

set m_timer = form1.timer1

end sub

private sub m_timer_timer()

m_timer.enabled = false

dim i as long

dim r as long

for i = 0 to j

r = r + i

next

raiseevent mytaskresult(r)

end sub

public sub mybigtask(i as long)

m_timer.enabled = true

m_timer.interval = 10

j = i

end sub

客戶端private withevents longtask as asyncservertest.myasynccls

private sub command1_click()

set longtask = new asyncservertest.myasynccls

longtask.mybigtask (text1.text)

end sub

private sub longtask_mytaskresult(result as long)

text2.text = result

msgbox "long task finished"

end sub

在VB中實現非同步呼叫

vb本身是不支援多執行緒的。但是vb中的部件有程序內及程序外的區分,因此這裡我使用程序外部件來實現非同步呼叫。伺服器端 新建乙個activeexe工程,加入乙個窗體,窗體中存放乙個timer控制項 新增乙個類模組。如下 private withevents m timer as timer publ...

async await實現非同步呼叫

async await使得非同步 看起來像同步 async函式會隱式地返回乙個promise,而promise的reosolve值就是函式return的值 async await不需要寫.then,不需要寫匿名函式處理promise的resolve值,也不需要定義多餘的data變數,還避免了巢狀 a...

實現非同步呼叫Web Service

普通呼叫web service的方法,在web service執行期間客戶端會一直等待服務執行完畢才能響應。從而造成客戶端ui執行緒的阻塞假死現象。這時候,非同步呼叫就顯得很有用,它可以讓客戶端在呼叫web service時,不至於阻塞客戶端的ui執行緒導致假死,還可以在呼叫web service的...