欧美一区二区三区老妇人-欧美做爰猛烈大尺度电-99久久夜色精品国产亚洲a-亚洲福利视频一区二区

vb.net跨線程調(diào)用 c跨線程訪問控件

請教VB.net中怎么跨線程調(diào)用控件

建立委托。 Me.Invoke——同步委托 或者 Me.BeginInvoke——異步委托 例:Me.Invoke(Sub Textbox.Text="這是一個示例" End Sub)

創(chuàng)新互聯(lián)主要從事網(wǎng)站制作、成都做網(wǎng)站、網(wǎng)頁設(shè)計、企業(yè)做網(wǎng)站、公司建網(wǎng)站等業(yè)務(wù)。立足成都服務(wù)興文,10年網(wǎng)站建設(shè)經(jīng)驗,價格優(yōu)惠、服務(wù)專業(yè),歡迎來電咨詢建站服務(wù):028-86922220

VB.NET 在線程里用textbox,提示 線程間操作無效: 從不是創(chuàng)建控件“TextBox2”的線程訪問它

比如在一個窗體中的代碼如下,在另一個線程中顯示,隱藏窗口線程中的進(jìn)度條:

Public?Delegate?Sub?VoidDelegate()?'定義委托類型

Private?Sub?Button1_Click(ByVal?sender?As?System.Object,?ByVal?e?As?System.EventArgs)

Dim?th1?As?New?System.Threading.Thread(AddressOf?MyThreadProc)?'聲明線程

th1.Start()?'啟動線程運行?MyThreadProc過程

End?Sub

Public?Sub?MyThreadProc()?

Me.Invoke(New?VoidDelegate(AddressOf?StartProgress))?'這個是在另一個線程里調(diào)用StartProgress過程,并在創(chuàng)建窗口的那個線程里運行。參數(shù)是委托類型。me也可以改成控件名。如果直接調(diào)用?StartProgress,那該過程就在與MyThreadProc同一線程中運行,那么StartProgress過程中修改的控件不是在本線程創(chuàng)建的,就會出錯。

'。。。。。。。。。

Me.Invoke(New?VoidDelegate(AddressOf?ShutProgress))

End?Sub

Public?Sub?ShutProgress()

ProgressBar1.Visible?=?False

End?Sub

Public?Sub?StartProgress()

ProgressBar1.Visible?=?True

End?Sub

'不是還有個Process控件嗎,好像也是用來多線程操作的,還沒研究,

大神你們好,請幫我看一下這段vb.net的 Invoke代碼是什么意思...

其實這行代碼和C_RunCompleted(image, Nothing)的效果類似,但在BackgroundWorker中解決了“線程安全”的問題。

你可以把多線程看成幾個工人同時干活。如果大家都共用一份材料,然后我給它補一塊,你給它割一塊,他再把其它材料焊上去,豈不是亂套了?Invoke的作用就是用一個線程模型調(diào)用方法,讓主線程先放一邊,這樣就不會亂套了,也就是“線程安全”。你試試直接改成上面的代碼,運行時會引發(fā)跨線程異常

本文題目:vb.net跨線程調(diào)用 c跨線程訪問控件
文章出自:http://www.chinadenli.net/article22/hpgsjc.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站策劃標(biāo)簽優(yōu)化營銷型網(wǎng)站建設(shè)App設(shè)計Google手機網(wǎng)站建設(shè)

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

綿陽服務(wù)器托管