, 난 멀티 스레드 프로그램에서 이벤트를 생성 다루는이 루틴을 사용했다 호출 : (여기서 나는 곳을 찾았지만 기억이 안나요) :C# 이벤트 창조 : 올립니다 대 C# 6 전
public static object Raise(this MulticastDelegate multicastDelegate, object sender, EventArgs e)
{
object retVal = null;
MulticastDelegate threadSafeMulticastDelegate = multicastDelegate;
if (threadSafeMulticastDelegate != null)
{
foreach (Delegate d in threadSafeMulticastDelegate.GetInvocationList())
{
var synchronizeInvoke = d.Target as ISynchronizeInvoke;
if ((synchronizeInvoke != null) && synchronizeInvoke.InvokeRequired)
retVal = synchronizeInvoke.EndInvoke(synchronizeInvoke.BeginInvoke(d, new[] { sender, e }));
else
retVal = d.DynamicInvoke(sender, e);
}
}
return retVal;
}
?
는 그래서 내가했던 일은, 나는 새가 같은 것을 사용하여 있었는지, C# 6으로 지금
Eventname.Raise (..., ...)
이었다 EVENTNAME .Invoke을 (.. .);궁금한 점은 Raise()와는 다른 작품으로 Invocation으로 모든 이벤트 제작을 변경해야합니까, 아니면 같은 것입니까?
의견을 보내 주셔서 감사합니다. Raise() 코드를 변경합니다. 도와 주셔서 감사합니다. – Tony