0
winforms에 Telerik의 radcontrols를 사용하고 있습니다. 여기 telerik의 radcontrols가 크로스 스레드 예외를 발생시킵니다.
내 문제를 재현 할 수있는 프로그램입니다 :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 메시지 상자를 사용하면 절대적으로 정상적으로 작동합니다.
아마도 여기에 뭔가 빠져 있습니다.
UPDATE : 다른 사람이 같은 문제를 가진 사람을위한
제안 된 솔루션? –
@WinCoder UI 스레드에서 메서드를 호출합니다. – Servy
음 .... 위의 코드는 문제를 재현하기 위해 만든 샘플 코드입니다. UI 스레드에서 컨트롤을 호출하면 제작 코드에서 중요한 조정이 필요합니다. –