telerik'的radcontrols导致跨线程异常

本文关键字:线程 异常 radcontrols telerik | 更新日期: 2023-09-27 18:14:22

我正在使用Telerik的radcontrols for winforms。

下面的程序可以重现我的问题:

public partial class RadForm1 : Telerik.WinControls.UI.RadForm
{
    public RadForm1()
    {
        InitializeComponent();
    }
    private void radButton1_Click(object sender, EventArgs e)
    {
        RadMessageBox.SetThemeName("Office2010Black");
        RadMessageBox.Show("Hello World");
        //MessageBox.Show("hello world");
        run();
    }
    public void run()
    {
        var thread = new Thread(() => run2());
        thread.IsBackground = true;
        thread.Start();
    }
    public void run2()
    {
        //MessageBox.Show("hello");
        RadMessageBox.Show("Hello");
    }
}

每当尝试使用Telerik的消息框时,我都会得到一个跨线程异常。但是,如果我使用标准的winform消息框,那么它就会工作得很好。

也许我遗漏了什么。

更新:

对于其他有同样问题的人这是官方回复的链接点击这里

telerik'的radcontrols导致跨线程异常

winform MessageBox类被特别设计为能够从非ui线程调用。

RadMessageBox则不是。它是在假设它将从UI线程调用的情况下设计的。