diff --git a/xml/System.Threading/WaitHandle.xml b/xml/System.Threading/WaitHandle.xml
index bee305e604b..99ae7be7942 100644
--- a/xml/System.Threading/WaitHandle.xml
+++ b/xml/System.Threading/WaitHandle.xml
@@ -589,8 +589,7 @@ Application code does not call this method; it is automatically invoked during g
-or-
is .
- The method was called on a thread that has .
- This method is not supported on Windows 98 or Windows Millennium Edition.
+ The method was called on a thread in state.
is a semaphore, and it already has a full count.
The wait completed because a thread exited without releasing a mutex. This exception is not thrown on Windows 98 or Windows Millennium Edition.
@@ -667,8 +666,7 @@ Application code does not call this method; it is automatically invoked during g
-or-
is .
- The method is called on a thread that has .
- This method is not supported on Windows 98 or Windows Millennium Edition.
+ The method is called on a thread in state.
The cannot be signaled because it would exceed its maximum count.
is a negative number other than -1, which represents an infinite time-out.
@@ -743,8 +741,7 @@ Application code does not call this method; it is automatically invoked during g
-or-
is .
- The method was called on a thread that has .
- This method is not supported on Windows 98 or Windows Millennium Edition.
+ The method was called on a thread in state.
is a semaphore, and it already has a full count.
@@ -859,10 +856,10 @@ Calling `Dispose` allows the resources used by the is new in the .NET Framework version 2.0. In previous versions, the 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 method returns when all the handles are signaled. On some implementations, if more than 64 handles are passed, a is thrown. If the array contains duplicates, the call fails with a .
+ The method returns when all the handles are signaled. If more than 64 handles are passed, a is thrown. If the array contains duplicates, the call fails with a .
> [!NOTE]
-> The method is not supported on threads that have .
+> The method is not supported on threads in state.
Calling this method overload is equivalent to calling the method overload and specifying -1 (or ) for `millisecondsTimeout` and `true` for `exitContext`.
@@ -897,7 +894,7 @@ Calling `Dispose` allows the resources used by the attribute is applied to the thread procedure for the current thread, and contains more than one element.
+ The current thread is state, and contains more than one element.
is an array with no elements and the .NET Framework version is 1.0 or 1.1.
The wait terminated because a thread exited without releasing a mutex. This exception is not thrown on Windows 98 or Windows Millennium Edition.
@@ -957,10 +954,10 @@ Calling `Dispose` allows the resources used by the method returns when the wait terminates, which means either when all the handles are signaled or when time-out occurs. On some implementations, if more than 64 handles are passed, a is thrown. If there are duplicates in the array, the call fails with a .
+ The method returns when the wait terminates, which means either when all the handles are signaled or when time-out occurs. If more than 64 handles are passed, a is thrown. If there are duplicates in the array, the call fails with a .
> [!NOTE]
-> The method is not supported on threads that have .
+> The method is not supported on threads in state.
Calling this method overload is the same as calling the overload and specifying `false` for `exitContext`.
@@ -988,7 +985,7 @@ Calling `Dispose` allows the resources used by the attribute is applied to the thread procedure for the current thread, and contains more than one element.
+ The current thread is in state, and contains more than one element.
is a negative number other than -1, which represents an infinite time-out.
The wait completed because a thread exited without releasing a mutex. This exception is not thrown on Windows 98 or Windows Millennium Edition.
@@ -1048,10 +1045,10 @@ Calling `Dispose` allows the resources used by the method returns when the wait terminates, which means either all the handles are signaled or a time-out occurs. On some implementations, if more than 64 handles are passed, a is thrown. If the array contains duplicates, the call will fail.
+ The method returns when the wait terminates, which means either all the handles are signaled or a time-out occurs. If more than 64 handles are passed, a is thrown. If the array contains duplicates, the call will fail.
> [!NOTE]
-> The method is not supported on threads that have .
+> The method is not supported on threads in state.
The maximum value for `timeout` is .
@@ -1081,7 +1078,7 @@ Calling `Dispose` allows the resources used by the attribute is applied to the thread procedure for the current thread, and contains more than one element.
+ The current thread is in state, and contains more than one element.
is a negative number other than -1 milliseconds, which represents an infinite time-out.
@@ -1147,10 +1144,10 @@ Calling `Dispose` allows the resources used by the is new in the .NET Framework version 2.0. In previous versions, the 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 method returns when the wait terminates, which means either when all the handles are signaled or when time-out occurs. On some implementations, if more than 64 handles are passed, a is thrown. If there are duplicates in the array, the call fails with a .
+ The method returns when the wait terminates, which means either when all the handles are signaled or when time-out occurs. If more than 64 handles are passed, a is thrown. If there are duplicates in the array, the call fails with a .
> [!NOTE]
-> The method is not supported on threads that have .
+> The method is not supported on threads in state.
## Notes on Exiting the Context
The `exitContext` parameter has no effect unless the method is called from inside a nondefault managed context. This can happen if your thread is inside a call to an instance of a class derived from . Even if you are currently executing a method on a class that is not derived from , like , you can be in a nondefault context if a is on your stack in the current application domain.
@@ -1184,7 +1181,7 @@ Calling `Dispose` allows the resources used by the attribute is applied to the thread procedure for the current thread, and contains more than one element.
+ The current thread is in state, and contains more than one element.
is an array with no elements and the .NET Framework version is 1.0 or 1.1.
@@ -1243,10 +1240,10 @@ Calling `Dispose` allows the resources used by the is new in the .NET Framework version 2.0. In previous versions, the 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 method returns when the wait terminates, which means either all the handles are signaled or a time-out occurs. On some implementations, if more than 64 handles are passed, a is thrown. If the array contains duplicates, the call will fail.
+ The method returns when the wait terminates, which means either all the handles are signaled or a time-out occurs. If more than 64 handles are passed, a is thrown. If the array contains duplicates, the call will fail.
> [!NOTE]
-> The method is not supported on threads that have .
+> The method is not supported on threads in state.
The maximum value for `timeout` is .
@@ -1364,8 +1361,10 @@ Calling `Dispose` allows the resources used by the [!NOTE]
> In versions of the .NET Framework earlier than version 2.0, if a thread exits or aborts without explicitly releasing a , and that `Mutex` is at index 0 (zero) in a `WaitAny` array on another thread, the index returned by `WaitAny` is 128 instead of 0.
- This method returns when any handle is signaled. If more than one object becomes signaled during the call, the return value is the array index of the signaled object with the smallest index value of all the signaled objects. On some implementations, if more that 64 handles are passed, a is thrown.
-
+ This method returns when any handle is signaled. If more than one object becomes signaled during the call, the return value is the array index of the signaled object with the smallest index value of all the signaled objects.
+
+ The maximum number of the wait handles is 64, and 63 if the current thread is in state.
+
Calling this method overload is equivalent to calling the method overload and specifying -1 (or ) for `millisecondsTimeout` and `true` for `exitContext`.
@@ -1447,7 +1446,9 @@ Calling `Dispose` allows the resources used by the method throws an only when the wait completes because of an abandoned mutex. If `waitHandles` contains a released mutex with a lower index number than the abandoned mutex, the method completes normally and the exception is not thrown.
- This method returns when the wait terminates, either when any of the handles are signaled or when a timeout occurs. If more than one object becomes signaled during the call, the return value is the array index of the signaled object with the smallest index value of all the signaled objects. On some implementations, if more that 64 handles are passed, a is thrown.
+ This method returns when the wait terminates, either when any of the handles are signaled or when a timeout occurs. If more than one object becomes signaled during the call, the return value is the array index of the signaled object with the smallest index value of all the signaled objects.
+
+ The maximum number of the wait handles is 64, and 63 if the current thread is in state.
Calling this method overload is the same as calling the overload and specifying `false` for `exitContext`.
@@ -1521,8 +1522,10 @@ Calling `Dispose` allows the resources used by the method throws an only when the wait completes because of an abandoned mutex. If `waitHandles` contains a released mutex with a lower index number than the abandoned mutex, the method completes normally and the exception is not thrown.
- This method returns when the wait terminates, either when any of the handles are signaled or when a time-out occurs. If more than one object becomes signaled during the call, the return value is the array index of the signaled object with the smallest index value of all the signaled objects. On some implementations, if more that 64 handles are passed, a is thrown.
-
+ This method returns when the wait terminates, either when any of the handles are signaled or when a time-out occurs. If more than one object becomes signaled during the call, the return value is the array index of the signaled object with the smallest index value of all the signaled objects.
+
+ The maximum number of the wait handles is 64, and 63 if the current thread is in state.
+
The maximum value for `timeout` is .
Calling this method overload is the same as calling the overload and specifying `false` for `exitContext`.
@@ -1609,7 +1612,9 @@ Calling `Dispose` allows the resources used by the [!NOTE]
> In versions of the .NET Framework earlier than version 2.0, if a thread exits or aborts without explicitly releasing a , and that `Mutex` is at index 0 (zero) in a `WaitAny` array on another thread, the index returned by `WaitAny` is 128 instead of 0.
- This method returns when the wait terminates, either when any of the handles are signaled or when a timeout occurs. If more than one object becomes signaled during the call, the return value is the array index of the signaled object with the smallest index value of all the signaled objects. On some implementations, if more that 64 handles are passed, a is thrown.
+ This method returns when the wait terminates, either when any of the handles are signaled or when a timeout occurs. If more than one object becomes signaled during the call, the return value is the array index of the signaled object with the smallest index value of all the signaled objects.
+
+ The maximum number of the wait handles is 64, and 63 if the current thread is in state.
## Notes on Exiting the Context
The `exitContext` parameter has no effect unless the method is called from inside a nondefault managed context. This can happen if your thread is inside a call to an instance of a class derived from . Even if you are currently executing a method on a class that does not derive from , like , you can be in a nondefault context if a is on your stack in the current application domain.
@@ -1704,8 +1709,10 @@ Calling `Dispose` allows the resources used by the [!NOTE]
> In versions of the .NET Framework earlier than version 2.0, if a thread exits or aborts without explicitly releasing a , and that `Mutex` is at index 0 (zero) in a `WaitAny` array on another thread, the index returned by `WaitAny` is 128 instead of 0.
- This method returns when the wait terminates, either when any of the handles are signaled or when a time-out occurs. If more than one object becomes signaled during the call, the return value is the array index of the signaled object with the smallest index value of all the signaled objects. On some implementations, if more that 64 handles are passed, a is thrown.
-
+ This method returns when the wait terminates, either when any of the handles are signaled or when a time-out occurs. If more than one object becomes signaled during the call, the return value is the array index of the signaled object with the smallest index value of all the signaled objects.
+
+ The maximum number of the wait handles is 64, and 63 if the current thread is in state.
+
The maximum value for `timeout` is .
## Notes on Exiting the Context