我试图在选中或取消选中复选框时启动和停止自动检查功能。
Private Sub CheckBoxautorefresh_CheckedChanged(sender As Object, e As EventArgs) Handles CheckBoxautorefresh.CheckedChanged
Dim AutoRefreshThread As Thread = Nothing
If CheckBoxautorefresh.Checked Then
AutoRefreshThread = New Threading.Thread(AddressOf Main.AutoRefresh)
AutoRefreshThread.SetApartmentState(Threading.ApartmentState.STA)
AutoRefreshThread.Start()
Else
AutoRefreshThread.Abort()
End If
End Sub
当我选中复选框时,它会正常启动 AutoRefresh-Sub,并且可以正常工作。当我之后取消选择它时,我在这一行中收到 System.NullReferenceException:
AutoRefreshThread.Abort()
自动刷新功能每 30 秒下载一个字符串。 我喜欢用复选框检查自动刷新的开/关。 但由于某种原因它不起作用。 有人可以帮我吗? :)
最佳答案
您正在 CheckedChanged
事件中定义线程:
Dim AutoRefreshThread As Thread = Nothing
当取消选中该复选框时,您将引用一个实际上尚未实例化的变量(仅在选中该复选框时才会发生)。您不再引用选中该复选框时创建的原始线程。
尝试在事件外部定义AutoRefreshThread
。
关于vb.net - 线程 System.NullReferenceException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22590528/