public void Stop() { myClass.MyEvent -= new EventHandler(doSomething); Monitor.Enter(mylock); //If somebody else already took the lock, we will wait here myClass = null; Monitor.Exit(mylock); //We release the lock, so others can access it }
public void Stop() { myClass.MyEvent -= new EventHandler(doSomething); lock (mylock) //If somebody else already took the lock, we will wait here { myClass = null; } //We release the lock, so others can access it }
static void MyEvent() { MyClassWithEvent myClassWithEvent = new MyClassWithEvent(); Console.WriteLine("Please enter a message:"); myClassWithEvent.MessageReceivingRaised += MessageCatcher.MessageReceivingEventHandler; myClassWithEvent.StartTyping(); myClassWithEvent.MessageReceivedRaised += ErrorCatcher.ErrorReceivedEventHandler; myClassWithEvent.MessageReceivedRaised += MessageCatcher.MessageReceivedEventHandler; myClassWithEvent.Message = Console.ReadLine(); }