안녕 나는 다음을 참조 코드 :이 코드에서 Action을 사용하는 이유는 무엇입니까?
void UpdateMessage (string message)
{
Action action =() => txtMessage.Text = message;
this.Invoke (action);
}
왜 액션을 사용하고 여기에 액션을 호출? 왜 그냥 txtMessage.Text = message
을 사용하여 함수 본문의 코드를 대체하지 않습니까?
업데이트
코드의 풀러 버전이 코드가 다른 스레드에서 실행 들여 쓰기 등
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
new Thread(Work).Start();
}
void Work()
{
Thread.Sleep(5000);
UpdateMessage("My Garden");
}
void UpdateMessage(string message) {
Action action =() => textBox1.Text = message;
this.Invoke(action);
}
}
이 윈폼에서인가? –
나는 당신이 비즈니스에 "나쁜 코드"라고 부르는 것을 발견했습니다. 실제로 간접 지정이 필요한 시스템의 어떤 곳에서 복사되었을 수 있습니다. 그러나 당신은 100 % 맞습니다. 그렇지 않습니다. – Axeman
@Axeman 제공된 코드에서 UpdateMessage가 항상 GUI 스레드에서 실행된다는 것을 어떻게 알 수 있습니까? –