<Type Name="SynchronizationLockException" FullName="System.Threading.SynchronizationLockException" FullNameSP="System_Threading_SynchronizationLockException" Maintainer="ecma">
  <TypeSignature Language="ILASM" Value=".class public serializable SynchronizationLockException extends System.SystemException" />
  <TypeSignature Language="C#" Value="public class SynchronizationLockException : SystemException" />
  <MemberOfLibrary>BCL</MemberOfLibrary>
  <AssemblyInfo>
    <AssemblyName>mscorlib</AssemblyName>
    <AssemblyPublicKey>[00 00 00 00 00 00 00 00 04 00 00 00 00 00 00 00 ]</AssemblyPublicKey>
    <AssemblyVersion>2.0.0.0</AssemblyVersion>
  </AssemblyInfo>
  <ThreadingSafetyStatement>All public static members of this type are safe for multithreaded operations. No instance members are guaranteed to be thread safe.</ThreadingSafetyStatement>
  <Base>
    <BaseTypeName>System.SystemException</BaseTypeName>
  </Base>
  <Interfaces />
  <Docs>
    <summary>
      <para> Represents the error that occurs when a method requires the
      caller to own the lock on a given <see cref="T:System.Threading.Monitor" /> , and the method is
      invoked by a caller that does not own that lock.
      </para>
    </summary>
    <remarks>
      <para>
        <see cref="T:System.Threading.SynchronizationLockException" /> is
   thrown if the <see cref="M:System.Threading.Monitor.Pulse(System.Object)" />, <see cref="M:System.Threading.Monitor.PulseAll(System.Object)" />, or <see cref="M:System.Threading.Monitor.Wait(System.Object,System.Int32,System.Boolean)" /> methods
   are invoked for a specified object, but the caller does not own the lock on that
   object.<see cref="T:System.Threading.SynchronizationLockException" /> is also thrown when the <see cref="M:System.Threading.Monitor.Exit(System.Object)" /> method is
   called to release the lock on an object, but the caller does not own the lock on
   that object.
   </para>
      <para>To acquire the lock on an object, use <see cref="M:System.Threading.Monitor.Enter(System.Object)" />. To release the
lock on an object, use <see cref="M:System.Threading.Monitor.Exit(System.Object)" />.</para>
    </remarks>
  </Docs>
  <Members>
    <Member MemberName=".ctor">
      <MemberSignature Language="ILASM" Value="public rtspecialname specialname instance void .ctor()" />
      <MemberSignature Language="C#" Value="public SynchronizationLockException ();" />
      <MemberType>Constructor</MemberType>
      <ReturnValue />
      <Parameters />
      <Docs>
        <summary>
          <para>Constructs and initializes a new instance of the <see cref="T:System.Threading.SynchronizationLockException" /> class. </para>
        </summary>
        <remarks>
          <para>This constructor initializes the <see cref="!:System.Threading.SynchronizationLockException.Message" /> property of the
   new instance to a system-supplied message that describes the error, such as
   "Synchronization method was invoked from an unsynchronized block of code." This
   message takes into account the current system culture.</para>
          <para>The <see cref="!:System.Threading.SynchronizationLockException.InnerException" /> property is initialized to
<see langword="null" />.</para>
        </remarks>
      </Docs>
      <Excluded>0</Excluded>
    </Member>
    <Member MemberName=".ctor">
      <MemberSignature Language="ILASM" Value="public rtspecialname specialname instance void .ctor(string message)" />
      <MemberSignature Language="C#" Value="public SynchronizationLockException (string message);" />
      <MemberType>Constructor</MemberType>
      <ReturnValue />
      <Parameters>
        <Parameter Name="message" Type="System.String" />
      </Parameters>
      <Docs>
        <param name="message">A <see cref="T:System.String" /> that describes the error. The content of <paramref name="message" /> is intended to be understood by humans. The caller of this constructor is required to ensure that this string has been localized for the current system culture. </param>
        <summary>
          <para>Constructs and initializes a new instance of the <see cref="T:System.Threading.SynchronizationLockException" /> class. </para>
        </summary>
        <remarks>
          <para>This constructor initializes the <see cref="!:System.Threading.SynchronizationLockException.Message" /> property of the new instance using <paramref name="message" />. If <paramref name="message" /> is
<see langword="null" />, the <see cref="!:System.Threading.SynchronizationLockException.Message" /> property is initialized to the system-supplied 
   message provided by the constructor that takes no arguments. </para>
          <para> The <see cref="!:System.Threading.SynchronizationLockException.InnerException" /> property is initialized to <see langword="null" />.</para>
        </remarks>
      </Docs>
      <Excluded>0</Excluded>
    </Member>
    <Member MemberName=".ctor">
      <MemberSignature Language="C#" Value="protected SynchronizationLockException (System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context);" />
      <MemberType>Constructor</MemberType>
      <Parameters>
        <Parameter Name="info" Type="System.Runtime.Serialization.SerializationInfo" />
        <Parameter Name="context" Type="System.Runtime.Serialization.StreamingContext" />
      </Parameters>
      <Docs>
        <param name="info">To be added.</param>
        <param name="context">To be added.</param>
        <summary>To be added.</summary>
        <remarks>To be added.</remarks>
      </Docs>
    </Member>
    <Member MemberName=".ctor">
      <MemberSignature Language="ILASM" Value="public rtspecialname specialname instance void .ctor(string message, class System.Exception innerException)" />
      <MemberSignature Language="C#" Value="public SynchronizationLockException (string message, Exception innerException);" />
      <MemberType>Constructor</MemberType>
      <ReturnValue />
      <Parameters>
        <Parameter Name="message" Type="System.String" />
        <Parameter Name="innerException" Type="System.Exception" />
      </Parameters>
      <Docs>
        <param name="message">A <see cref="T:System.String" /> that describes the error. The content of <paramref name="message" /> is intended to be understood by humans. The caller of this constructor is required to ensure that this string has been localized for the current system culture. </param>
        <param name="innerException">An instance of <see cref="T:System.Exception" /> that is the cause of the current exception. If <paramref name="innerException" /> is non-null, then the current Exception was raised in a catch block handling <paramref name="innerException" /> . </param>
        <summary>
          <para>Constructs and initializes a new instance of the <see cref="T:System.Threading.SynchronizationLockException" /> class. </para>
        </summary>
        <remarks>
          <para>This constructor initializes the <see cref="!:System.Threading.SynchronizationLockException.Message" /> property
   of the new instance using <paramref name="message" /> and the <see cref="!:System.Threading.SynchronizationLockException.InnerException" /> property using
<paramref name="innerException" />. If <paramref name="message" /> is 
<see langword="null" />, the <see cref="!:System.Threading.SynchronizationLockException.Message" /> property is initialized to the system-supplied 
   message provided by the constructor that takes no arguments.</para>
          <para>
            <block subset="none" type="note">For more information on inner
   exceptions, see <see cref="P:System.Exception.InnerException" />.</block>
          </para>
        </remarks>
      </Docs>
      <Excluded>0</Excluded>
    </Member>
  </Members>
  <TypeExcluded>0</TypeExcluded>
  <Attributes>
    <Attribute>
      <AttributeName>System.Runtime.InteropServices.ComVisible(true)</AttributeName>
    </Attribute>
  </Attributes>
</Type>
