본문 바로가기
C#, MONO

쓰레드 동작중에 Invoke로 문자 쓰기

by gigasound 2021. 8. 9.

Thread로 동작중에 화면에 내용을 표시하고 싶을 때가 있습니다.

그런데 Thread에서 폼으로 접근하는 것이 잘 되지 않습니다. 

해결 방법으로  Invoke를 사용합니다.

이 글은 Invoke delegate를 이용해서 lcdlabel에 글자를 쓰는 방법입니다.

Invoke((MethodInvoker)delegate {
    this.lcdLabel.Text}
);

아래와 같이 사용해도 됩니다.

 private void WriteText(Control ctrl,string s) {
 	if(ctrl.InvokeRequired) { 
 		ctrl.Invoke(_TextWriter,ctrl,s); 
 	}
 	else { 
 		ctrl.Text = s; 
 	}
 }

이 방법은 Text를 포함하는 모든 도구에 사용이 가능합니다. 

'C#, MONO' 카테고리의 다른 글

float[]를 double[]로 변화  (0) 2021.08.09
배열과 리스트의 변환  (0) 2021.08.09
다른 폼으로 메시지 전송(3)  (0) 2021.08.09
다른 폼으로 메시지 전송(2)  (0) 2021.08.09
다른 폼으로 메시지 전송(1)  (0) 2021.08.09