.NET 이벤트 모델은 종종 한 스레드에서 이벤트를 발생시키고 다른 스레드에서 수신 대기하는 것과 같습니다. 백그라운드 스레드에서 내 UI 스레드로 이벤트를 마샬링하는 가장 깨끗한 방법이 무엇인지 궁금합니다.
커뮤니티 제안에 따라 다음을 사용했습니다.
// earlier in the code
mCoolObject.CoolEvent+=
new CoolObjectEventHandler(mCoolObject_CoolEvent);
// then
private void mCoolObject_CoolEvent(object sender, CoolObjectEventArgs args)
{
if (InvokeRequired)
{
CoolObjectEventHandler cb =
new CoolObjectEventHandler(
mCoolObject_CoolEvent);
Invoke(cb, new object[] { sender, args });
return;
}
// do the dirty work of my method here
}