0

我正在将 Telerik 的 radcontrols 用于 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 消息框,那么它绝对可以正常工作。

也许我在这里遗漏了一些东西。

更新:

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

4

1 回答 1

2

winformMessageBox类专门设计为能够从非 UI 线程调用。

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

于 2013-05-20T20:01:15.263 回答