在類別跨執行緒顯示表單

Andasan
各位大大
我在一類別中開一執行緒要開啟某個表單,但怎樣測試就是不行。請各位大大指點,謝謝。

以下程式是放在類別中,DisplayMsg函式是另開一執行緒來執行,我想開啟名稱為mainForm的表單。



   Delegate Sub showFormCallBack(ByVal myForm As Form)
    Public Sub showForm(ByVal myForm As Form)
        myForm.Show()
    End Sub

    Public Sub DisplayMsg(ByVal state As myConnectState)
             If mainForm.InvokeRequired Then
               Dim myShowForm As New showFormCallBack(AddressOf showForm)
               mainForm.Invoke(myShowForm, mainForm)
             Else
               showForm(mainForm)
             End If
   end sub	


Andasan
表單還沒開起就卡在最後一個變數宣告,所以根本到不了Form_Load事件
Andasan
如果socket寫在表單內,再利用委派的方式,是沒問題的。但是如果socket寫在類別內,就是會出現不同執行緒的錯誤。

不知道一般的socket連線是怎麼寫的,我的想法是如果寫在登入表單,登入之後呼叫其他表單出來,然後登入表單關掉,接著連線就斷了,所以才想說寫在類別,可以讓所有表單共用。

請問各位大大的經驗。
回到頂部