Windows 용 응용 프로그램에서 스레딩에 대해 알아보기 위해 Testbox를 만들었습니다. 실버 라이트와 자바가 Dispatcher를 제공하고있어 GUI 요소를 업데이트 할 때 정말 도움이됩니다.C#에서 대리자 구문의 문제점
코드 샘플 : 선언 클래스 위임
public delegate void d_SingleString(string newText);
만들기 스레드
_thread_active = true;
Thread myThread = new Thread(delegate() { BackGroundThread(); });
myThread.Start();
스레드 기능
private void BackGroundThread()
{
while (_thread_active)
{
MyCounter++;
UpdateTestBox(MyCounter.ToString());
Thread.Sleep(1000);
}
}
위임 텍스트 상자 업데이트
public void UpdateTestBox(string newText)
{
if (InvokeRequired)
{
BeginInvoke(new d_SingleString(UpdateTestBox), new object[] { newText });
return;
}
tb_output.Text = newText;
}
BeginInvoke 메서드에서 Delate Declaration을 선언 할 수있는 방법이 있습니까? 당신이 프레임 워크에서 Action<T>
대표 (link to msdn)를 사용하여 다음과 같이 간단한 명 규모의
BeginInvoke(*DELEGATE DECLARATION HERE*, new object[] { newText });
많은 감사와 같은
는뭔가 rAyt
당신의 수호를 사랑하십시오 Marc. 10 분 동안 MSDN을 읽는 것보다 더 많은 것을 배웠습니다 :) –
단일 실 아파트의 경이 ... – Spence
매우 우아한 솔루션; 이 질문에 대한 답은 실제로 받아 들여야합니다. –