C#, MONO
쓰레드 동작중에 Invoke로 문자 쓰기
gigasound
2021. 8. 9. 11:06
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를 포함하는 모든 도구에 사용이 가능합니다.