AbandonedMutexException is new in the .NET Framework version 2.0. In previous versions, the WaitAll method returns true when a mutex is abandoned. An abandoned mutex often indicates a serious coding error. In the case of a system-wide mutex, it might indicate that an application has been terminated abruptly (for example, by using Windows Task Manager). The exception contains information useful for debugging.
The WaitAll method returns when all the handles are signaled. On some implementations, if more than 64 handles are passed, a NotSupportedException is thrown. If the array contains duplicates, the call fails with a DuplicateWaitObjectException.
Calling this method overload is equivalent to calling the WaitAll(array<WaitHandle>[]()[], Int32, Boolean) method overload and specifying -1 (or Timeout..::.Infinite) for millisecondsTimeout and true for exitContext.