如何从线程中设置组件属性而不在C#中引发错误

本文关键字:错误 属性 线程 设置 组件 | 更新日期: 2023-09-27 18:19:47

我有一个用户界面,它需要由运行在backgroundworker(与主线程不同的线程)中的函数更新。

我希望有效地能够在不引发异常的情况下完成以下操作:

    private void backgroundWorker1_DoWork(object sender, DoWorkEventArgs e)
    {
        MyProgresssbar.value = val;
        MyLabel.text = "Still going...";
    }

例如,是否可以编写一个委托函数来设置组件属性(我不希望每次属性更改都有一个函数)。

提前谢谢。

如何从线程中设置组件属性而不在C#中引发错误

您应该使用BackgroundWorker内置的进度报告功能。

作为一个更通用的答案,您可以通过调用在UI线程中运行代码(aynchronly)

someControl.BeginInvoke(new Action(delegate { ... }));