2014-07-24 1 views
1

그래서 얼마 전 원격 데스크톱 연결을 통해 MessageBox가 팝업되는 것에 대한 질문을 올렸습니다. 프로그램을 가지고 놀기로 결정하기 전까지 (아래)받은 대답은 정상적으로 작동했습니다. MessageBox.Show는 RDC를 통해 나타납니다

private void Alarm() 
{ 
    MessageBox.Show(this, 
       "Your text", 
       "Settings Needed", 
       MessageBoxButtons.YesNo, 
       MessageBoxIcon.Question 
       MessageBoxDefaultButton.Button1, // specify "Yes" as the default 
       (MessageBoxOptions)0x40000); 
} 

지금 저는는 onChanged 이벤트에서이 메서드를 호출하려고, 나는 오류를

"추가 정보를 얻을 : 유효하지 크로스 스레드 작업 : 제어 '을 Form1에'는에서 액세스 스레드가 아닌 스레드가 에 생성되었습니다. "

내 지식은 스레딩에 약간의 제한이 있지만이 대신 새로운 스레드를 만들어야합니까?

또는 다른 방법으로 MessageBox를 원격 데스크톱 연결을 통해 표시 할 수 있습니까?

감사합니다, 톰

+0

백그라운드 스레드에서 '알람'을 실행합니까? –

+2

'Alarm '을 호출하는 코드를 게시 할 수 있습니까? 나는 이것이 스레딩과 관련이있는만큼 RDP와 관련이 없다고 확신합니다. –

답변

1

나는이 원격 데스크톱과 무슨 상관이 표시되지 않습니다. 백그라운드 스레드에서 Form1을 사용 중입니다. UI 컨트롤은 UI 스레드에서 사용해야합니다.

다양한 방법 중 하나를 사용하여 UI 스레드를 호출하고 거기에서 메시지 상자를 표시하십시오.

관련 문제