新聞中心
vb.net如何讓兩個(gè)窗體并發(fā)運(yùn)行
Imports System.Threading

成都網(wǎng)絡(luò)公司-成都網(wǎng)站建設(shè)公司創(chuàng)新互聯(lián)公司10年經(jīng)驗(yàn)成就非凡,專業(yè)從事網(wǎng)站制作、成都網(wǎng)站制作,成都網(wǎng)頁設(shè)計(jì),成都網(wǎng)頁制作,軟文發(fā)稿,一元廣告等。10年來已成功提供全面的成都網(wǎng)站建設(shè)方案,打造行業(yè)特色的成都網(wǎng)站建設(shè)案例,建站熱線:028-86922220,我們期待您的來電!
Public Class Form1
Dim t1, t2 As Thread
Dim tt1
Private Delegate Sub voiddelegate(ByVal i As Integer)
Private Sub Form1_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
Form2.Show()
End Sub
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
t1 = New Thread(AddressOf test)
tt1 = 1
t1.Start()
tt1 = 2
t2 = New Thread(AddressOf test)
t2.Start()
' Timer1.Start()
End Sub
Private Sub updateui(ByVal i As Integer)
Form2.Label1.Text = i.ToString
Form2.Label2.Text = i.ToString
End Sub
'把循環(huán)放到線程中運(yùn)行會好一些,其實(shí)主要事務(wù)是對窗體控件的操作時(shí)多線程意義不大,因?yàn)樵L問窗體的代碼依然要在窗體線程中運(yùn)行。
Private Sub test()
Dim d As voiddelegate = AddressOf updateui
For i = 0 To 9000
Me.Invoke(d, i)
Next
End Sub
'如果放在計(jì)時(shí)器中運(yùn)行效果好的多
Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick
Static i As Integer = 0
i += 1
If i 9000 Then Timer1.Stop() : i = 0
Form2.Label1.Text = i.ToString
Form2.Label2.Text = i.ToString
End Sub
End Class
'如果在另一線程中用Application.run 打開窗體確實(shí)能行,不過窗體間相互操作不起作用,這個(gè)尚待研究中。
vb.net 多線程調(diào)用另一窗口,假死現(xiàn)象,如何解決
感覺問題出在
Form2.Show() '啟動倒計(jì)時(shí)顯示窗口
這一句上。
這一句應(yīng)該只需要執(zhí)行一次就行了。
把它放在timer中,多次調(diào)用,造成假死。
vb.net 如何防止程序重復(fù)運(yùn)行?
現(xiàn)在多是在form_load里驗(yàn)證的,你打開第二次也只是暫時(shí)的,后面讓他關(guān)閉就行了.
form_load之前windows form就已經(jīng)生成... 把你程序讀入內(nèi)存就算這個(gè)程序已經(jīng)被打開開始執(zhí)行了...不管你放那里都是會打開第二次的...
要讓他結(jié)束直接用Application.Exit()就行了.
分享題目:vb.net違反并發(fā)性 違反vb有關(guān)語句語法而產(chǎn)生的錯誤
鏈接URL:http://www.dlmjj.cn/article/doicghe.html


咨詢
建站咨詢
