VB.NET 在线程里用textbox,提示 线程间操作无效: 从不是创建控件“TextBox2”的线程访问它

看到MSDN上写着invoke,什么来着,本人菜鸟MSDN看不懂,还请大神写个示例,VB.NET的哦。谢谢... 看到MSDN上写着invoke,什么来着,本人菜鸟MSDN看不懂,还请大神写个示例,VB.NET的哦。谢谢 展开
 我来答
szqaly
推荐于2017-11-27 · TA获得超过1745个赞
知道大有可为答主
回答量:2107
采纳率:77%
帮助的人:1524万
展开全部

 比如在一个窗体中的代码如下,在另一个线程中显示,隐藏窗口线程中的进度条:  

     Public Delegate Sub VoidDelegate() '定义委托类型
    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)
        Dim th1 As New System.Threading.Thread(AddressOf MyThreadProc) '声明线程
        th1.Start() '启动线程运行 MyThreadProc过程
    End Sub
    Public Sub MyThreadProc() 
        Me.Invoke(New VoidDelegate(AddressOf StartProgress)) '这个是在另一个线程里调用StartProgress过程,并在创建窗庆枯口的那个线程里运行。参数者芹是委托类型。me也可以改成控件名。如果直接调用 StartProgress,那该过程就在与MyThreadProc同一线程中运行,那么StartProgress过程中修改的控件不是在本线程创建的,首差毕就会出错。
       '。。。。。。。。。
        Me.Invoke(New VoidDelegate(AddressOf ShutProgress))
    End Sub
    Public Sub ShutProgress()
        ProgressBar1.Visible = False
   End Sub
    Public Sub StartProgress()
        ProgressBar1.Visible = True
    End Sub

'不是还有个Process控件吗,好像也是用来多线程操作的,还没研究,

cdendong19904
2018-12-05
知道答主
回答量:1
采纳率:0%
帮助的人:796
展开全部
在form_load事含裂中谈山源袭件中加上下面一句就好:
CheckForIllegalCrossThreadCalls = False '不进行跨线程检查,
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式