C#

如何从另一个线程更新 GUI?

发布于 2022-03-22 23:30:17

哪个是Label从另一个更新 a 的最简单方法Thread

  • 我有一个Form正在运行的thread1,然后我开始另一个线程(thread2)。
  • thread2处理一些文件时,我想LabelForm当前thread2工作状态更新 a 。

我怎么能那样做?

关注者
0
被浏览
85
1 个回答
  • 面试哥
    面试哥 2022-03-22
    为面试而生,有面试问题,就找面试哥。

    简单的方法是传入匿名方法Label.Invoke

    // Running on the worker thread
    string newText = "abc";
    form.Label.Invoke((MethodInvoker)delegate {
        // Running on the UI thread
        form.Label.Text = newText;
    });
    // Back on the worker thread
    

    请注意,Invoke在完成之前会阻塞执行——这是同步代码



推荐阅读
知识点
面圈网VIP题库

面圈网VIP题库全新上线,海量真题题库资源。 90大类考试,超10万份考试真题开放下载啦

去下载看看