我正在使用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消息框,那么它将完全正常工作。
也许我在这里错过了一些东西。
更新:
对于其他遇到同样问题的人来说,这是指向官方回复Click here
的链接答案 0 :(得分:2)
winform MessageBox
类专门设计为可以从非UI线程调用。
RadMessageBox
根本就没有。它是在假设它将从UI线程调用的基础上设计的。