从不同的线程调用UI中的函数

时间:2015-11-19 23:00:19

标签: vb.net multithreading

我暂时没有这样做,但我想我已经记错了 - 在form1上我有这个

Public Sub print(s As String)
    TextBox1.Text = s & vbNewLine & TextBox1.Text
End Sub
Public Delegate Sub printDelDef(s As String)
Public printDel As New printDelDef(AddressOf print)

在我的主题工作者sub中我有这个

    Form1.BeginInvoke(Form1.printDel, "Started work on " & Name & " " & DateTime.Now.ToString)

线程在worker对象的类定义中创建,如下所示:

Public t As New Threading.Thread(AddressOf Work)

我知道这个组合以前对我有用,但是这次我得到一个错误"在创建窗口句柄之前,无法在控件上调用Invoke或BeginInvoke。"

我不知道这意味着什么,但我知道form1有一个名为" IsHandleCreated"所以我想也许这个调用过早被调用或者其他什么东西所以我试着等待#34; form1.IsHandleCreated = true"但这永远不会发生

0 个答案:

没有答案