Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/sql-server-2005/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Vb.net 线程没有被调用_Vb.net_Multithreading - Fatal编程技术网

Vb.net 线程没有被调用

Vb.net 线程没有被调用,vb.net,multithreading,Vb.net,Multithreading,我正在尝试调用按钮单击事件的线程。我不认为我的代码没有语法错误。但它不起作用 Private Sub btnHisStart_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnHisStart.Click thrHis = New Thread(AddressOf threadHistorical) thrHis.Start() End Sub

我正在尝试调用按钮单击事件的线程。我不认为我的代码没有语法错误。但它不起作用

    Private Sub btnHisStart_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnHisStart.Click
        thrHis = New Thread(AddressOf threadHistorical)
        thrHis.Start()
    End Sub
    Private Sub threadHistorical()
        'code
    End Sub

添加这一行并检查它

System.Windows.Forms.Control.CheckForIllegalCrossThreadCalls = False

你调试过吗?你能在
threadhistoric
方法中显示代码吗?如果你不小心,你可能会遇到竞争条件和死锁。您可能有多个线程试图同时更新同一个控件。谢谢。这就是我试图在同一个表单上创建线程数的原因。因此,它们可能是重叠的。无论如何,我的问题解决了-1设置
CheckForIllegalCrossThreadCalls=False
是一个坏习惯。虽然看起来它已经解决了问题,但它会回来咬你。您应该使用
Control.Invoke
而不是head查看有关CheckForIllegalCrossThreadCalls的更多信息