/// <summary>Notifies all waiting threads of a change in the object's state.</summary> /// <param name="obj">The object that sends the pulse. </param> /// <exception cref="T:System.ArgumentNullException">The <paramref name="obj" /> parameter is null. </exception> /// <exception cref="T:System.Threading.SynchronizationLockException">The calling thread does not own the lock for the specified object. </exception> /// <filterpriority>1</filterpriority> public static void PulseAll(object obj) { if (obj == null) { throw new ArgumentNullException("obj"); } if (!Monitor.Monitor_test_synchronised(obj)) { throw new SynchronizationLockException("Object is not synchronized"); } Monitor.Monitor_pulse_all(obj); }