﻿<?xml version="1.0" encoding="utf-8"?><Type Name="SynchronizationContext" FullName="System.Threading.SynchronizationContext"><TypeSignature Language="C#" Value="public class SynchronizationContext" /><TypeSignature Language="ILAsm" Value=".class public auto ansi beforefieldinit SynchronizationContext extends System.Object" /><AssemblyInfo><AssemblyName>mscorlib</AssemblyName><AssemblyVersion>2.0.0.0</AssemblyVersion><AssemblyVersion>4.0.0.0</AssemblyVersion></AssemblyInfo><Base><BaseTypeName>System.Object</BaseTypeName></Base><Interfaces /><Docs><since version=".NET 2.0" /><remarks><attribution license="cc4" from="Microsoft" modified="false" /><para>The <see cref="T:System.Threading.SynchronizationContext" /> class is a base class that provides a free-threaded context with no synchronization. </para><para>The purpose of the synchronization model implemented by this class is to allow the internal asynchronous/synchronous operations of the common language runtime to behave properly with different synchronization models. This model also simplifies some of the requirements that managed applications have had to follow in order to work correctly under different synchronization environments.</para><para>Providers of synchronization models can extend this class and provide their own implementations for these methods. </para><para>For more information about synchronization contexts, see the article <see cref="http://msdn.microsoft.com/magazine/gg598924.aspx">It's All About the SynchronizationContext</see>in the MSDN Magazine.</para></remarks><summary><attribution license="cc4" from="Microsoft" modified="false" /><para>Provides the basic functionality for propagating a synchronization context in various synchronization models. </para></summary></Docs><Members><Member MemberName=".ctor"><MemberSignature Language="C#" Value="public SynchronizationContext ();" /><MemberSignature Language="ILAsm" Value=".method public hidebysig specialname rtspecialname instance void .ctor() cil managed" /><MemberType>Constructor</MemberType><AssemblyInfo><AssemblyVersion>2.0.0.0</AssemblyVersion><AssemblyVersion>4.0.0.0</AssemblyVersion></AssemblyInfo><Parameters /><Docs><since version=".NET 2.0" /><remarks><attribution license="cc4" from="Microsoft" modified="false" /><para>The default constructor performs no parameter initialization.</para></remarks><summary><attribution license="cc4" from="Microsoft" modified="false" /><para>Creates a new instance of the <see cref="T:System.Threading.SynchronizationContext" /> class.</para></summary></Docs></Member><Member MemberName="CreateCopy"><MemberSignature Language="C#" Value="public virtual System.Threading.SynchronizationContext CreateCopy ();" /><MemberSignature Language="ILAsm" Value=".method public hidebysig newslot virtual instance class System.Threading.SynchronizationContext CreateCopy() cil managed" /><MemberType>Method</MemberType><AssemblyInfo><AssemblyVersion>2.0.0.0</AssemblyVersion><AssemblyVersion>4.0.0.0</AssemblyVersion></AssemblyInfo><ReturnValue><ReturnType>System.Threading.SynchronizationContext</ReturnType></ReturnValue><Parameters /><Docs><since version=".NET 2.0" /><remarks><attribution license="cc4" from="Microsoft" modified="false" /><para>The default implementation returns an empty <see cref="T:System.Threading.SynchronizationContext" /> object.  </para></remarks><summary><attribution license="cc4" from="Microsoft" modified="false" /><para>When overridden in a derived class, creates a copy of the synchronization context.  </para></summary><returns><attribution license="cc4" from="Microsoft" modified="false" /><para>A new <see cref="T:System.Threading.SynchronizationContext" /> object.</para></returns></Docs></Member><Member MemberName="Current"><MemberSignature Language="C#" Value="public static System.Threading.SynchronizationContext Current { get; }" /><MemberSignature Language="ILAsm" Value=".property class System.Threading.SynchronizationContext Current" /><MemberType>Property</MemberType><AssemblyInfo><AssemblyVersion>2.0.0.0</AssemblyVersion><AssemblyVersion>4.0.0.0</AssemblyVersion></AssemblyInfo><ReturnValue><ReturnType>System.Threading.SynchronizationContext</ReturnType></ReturnValue><Docs><value>To be added.</value><since version=".NET 2.0" /><remarks><attribution license="cc4" from="Microsoft" modified="false" /><para>This property is useful for propagating a synchronization context from one thread to another.</para></remarks><summary><attribution license="cc4" from="Microsoft" modified="false" /><para>Gets the synchronization context for the current thread.</para></summary></Docs></Member><Member MemberName="IsWaitNotificationRequired"><MemberSignature Language="C#" Value="public bool IsWaitNotificationRequired ();" /><MemberSignature Language="ILAsm" Value=".method public hidebysig instance bool IsWaitNotificationRequired() cil managed" /><MemberType>Method</MemberType><AssemblyInfo><AssemblyVersion>2.0.0.0</AssemblyVersion><AssemblyVersion>4.0.0.0</AssemblyVersion></AssemblyInfo><ReturnValue><ReturnType>System.Boolean</ReturnType></ReturnValue><Parameters /><Docs><remarks>To be added.</remarks><since version=".NET 2.0" /><summary><attribution license="cc4" from="Microsoft" modified="false" /><para>Determines if wait notification is required.</para></summary><returns><attribution license="cc4" from="Microsoft" modified="false" /><para>true if wait notification is required; otherwise, false. </para></returns></Docs></Member><Member MemberName="OperationCompleted"><MemberSignature Language="C#" Value="public virtual void OperationCompleted ();" /><MemberSignature Language="ILAsm" Value=".method public hidebysig newslot virtual instance void OperationCompleted() cil managed" /><MemberType>Method</MemberType><AssemblyInfo><AssemblyVersion>2.0.0.0</AssemblyVersion><AssemblyVersion>4.0.0.0</AssemblyVersion></AssemblyInfo><ReturnValue><ReturnType>System.Void</ReturnType></ReturnValue><Parameters /><Docs><since version=".NET 2.0" /><remarks><attribution license="cc4" from="Microsoft" modified="false" /><para>The default implementation contains no code. You can optionally override this method to provide code that executes when an operation is complete.</para></remarks><summary><attribution license="cc4" from="Microsoft" modified="false" /><para>When overridden in a derived class, responds to the notification that an operation has completed.</para></summary></Docs></Member><Member MemberName="OperationStarted"><MemberSignature Language="C#" Value="public virtual void OperationStarted ();" /><MemberSignature Language="ILAsm" Value=".method public hidebysig newslot virtual instance void OperationStarted() cil managed" /><MemberType>Method</MemberType><AssemblyInfo><AssemblyVersion>2.0.0.0</AssemblyVersion><AssemblyVersion>4.0.0.0</AssemblyVersion></AssemblyInfo><ReturnValue><ReturnType>System.Void</ReturnType></ReturnValue><Parameters /><Docs><since version=".NET 2.0" /><remarks><attribution license="cc4" from="Microsoft" modified="false" /><para>The default implementation contains no code. You can optionally override this method to provide code that executes when an operation starts.</para></remarks><summary><attribution license="cc4" from="Microsoft" modified="false" /><para>When overridden in a derived class, responds to the notification that an operation has started.</para></summary></Docs></Member><Member MemberName="Post"><MemberSignature Language="C#" Value="public virtual void Post (System.Threading.SendOrPostCallback d, object state);" /><MemberSignature Language="ILAsm" Value=".method public hidebysig newslot virtual instance void Post(class System.Threading.SendOrPostCallback d, object state) cil managed" /><MemberType>Method</MemberType><AssemblyInfo><AssemblyVersion>2.0.0.0</AssemblyVersion><AssemblyVersion>4.0.0.0</AssemblyVersion></AssemblyInfo><ReturnValue><ReturnType>System.Void</ReturnType></ReturnValue><Parameters><Parameter Name="d" Type="System.Threading.SendOrPostCallback" /><Parameter Name="state" Type="System.Object" /></Parameters><Docs><since version=".NET 2.0" /><remarks><attribution license="cc4" from="Microsoft" modified="false" /><para>The <see cref="M:System.Threading.SynchronizationContext.Post(System.Threading.SendOrPostCallback,System.Object)" /> method starts an asynchronous request to post a message. </para></remarks><summary><attribution license="cc4" from="Microsoft" modified="false" /><para>When overridden in a derived class, dispatches an asynchronous message to a synchronization context.</para></summary><param name="d"><attribution license="cc4" from="Microsoft" modified="false" />The <see cref="T:System.Threading.SendOrPostCallback" /> delegate to call.</param><param name="state"><attribution license="cc4" from="Microsoft" modified="false" />The object passed to the delegate.</param></Docs></Member><Member MemberName="Send"><MemberSignature Language="C#" Value="public virtual void Send (System.Threading.SendOrPostCallback d, object state);" /><MemberSignature Language="ILAsm" Value=".method public hidebysig newslot virtual instance void Send(class System.Threading.SendOrPostCallback d, object state) cil managed" /><MemberType>Method</MemberType><AssemblyInfo><AssemblyVersion>2.0.0.0</AssemblyVersion><AssemblyVersion>4.0.0.0</AssemblyVersion></AssemblyInfo><ReturnValue><ReturnType>System.Void</ReturnType></ReturnValue><Parameters><Parameter Name="d" Type="System.Threading.SendOrPostCallback" /><Parameter Name="state" Type="System.Object" /></Parameters><Docs><since version=".NET 2.0" /><remarks><attribution license="cc4" from="Microsoft" modified="false" /><para>The <see cref="M:System.Threading.SynchronizationContext.Send(System.Threading.SendOrPostCallback,System.Object)" /> method starts a synchronous request to send a message.</para></remarks><summary><attribution license="cc4" from="Microsoft" modified="false" /><para>When overridden in a derived class, dispatches a synchronous message to a synchronization context.</para></summary><param name="d"><attribution license="cc4" from="Microsoft" modified="false" />The <see cref="T:System.Threading.SendOrPostCallback" /> delegate to call.</param><param name="state"><attribution license="cc4" from="Microsoft" modified="false" />The object passed to the delegate. </param></Docs></Member><Member MemberName="SetSynchronizationContext"><MemberSignature Language="C#" Value="public static void SetSynchronizationContext (System.Threading.SynchronizationContext syncContext);" /><MemberSignature Language="ILAsm" Value=".method public static hidebysig void SetSynchronizationContext(class System.Threading.SynchronizationContext syncContext) cil managed" /><MemberType>Method</MemberType><AssemblyInfo><AssemblyVersion>2.0.0.0</AssemblyVersion><AssemblyVersion>4.0.0.0</AssemblyVersion></AssemblyInfo><ReturnValue><ReturnType>System.Void</ReturnType></ReturnValue><Parameters><Parameter Name="syncContext" Type="System.Threading.SynchronizationContext" /></Parameters><Docs><remarks>To be added.</remarks><since version=".NET 2.0" /><summary><attribution license="cc4" from="Microsoft" modified="false" /><para>Sets the current synchronization context.</para></summary><param name="syncContext"><attribution license="cc4" from="Microsoft" modified="false" />The <see cref="T:System.Threading.SynchronizationContext" /> object to be set.</param></Docs></Member><Member MemberName="SetWaitNotificationRequired"><MemberSignature Language="C#" Value="protected void SetWaitNotificationRequired ();" /><MemberSignature Language="ILAsm" Value=".method familyhidebysig instance void SetWaitNotificationRequired() cil managed" /><MemberType>Method</MemberType><AssemblyInfo><AssemblyVersion>2.0.0.0</AssemblyVersion><AssemblyVersion>4.0.0.0</AssemblyVersion></AssemblyInfo><ReturnValue><ReturnType>System.Void</ReturnType></ReturnValue><Parameters /><Docs><remarks>To be added.</remarks><since version=".NET 2.0" /><summary><attribution license="cc4" from="Microsoft" modified="false" /><para>Sets notification that wait notification is required and prepares the callback method so it can be called more reliably when a wait occurs.</para></summary></Docs></Member><Member MemberName="Wait"><MemberSignature Language="C#" Value="public virtual int Wait (IntPtr[] waitHandles, bool waitAll, int millisecondsTimeout);" /><MemberSignature Language="ILAsm" Value=".method public hidebysig newslot virtual instance int32 Wait(native int[] waitHandles, bool waitAll, int32 millisecondsTimeout) cil managed" /><MemberType>Method</MemberType><AssemblyInfo><AssemblyVersion>2.0.0.0</AssemblyVersion><AssemblyVersion>4.0.0.0</AssemblyVersion></AssemblyInfo><Attributes><Attribute><AttributeName>System.CLSCompliant(false)</AttributeName></Attribute><Attribute><AttributeName>System.Runtime.ConstrainedExecution.PrePrepareMethod</AttributeName></Attribute></Attributes><ReturnValue><ReturnType>System.Int32</ReturnType></ReturnValue><Parameters><Parameter Name="waitHandles" Type="System.IntPtr[]" /><Parameter Name="waitAll" Type="System.Boolean" /><Parameter Name="millisecondsTimeout" Type="System.Int32" /></Parameters><Docs><since version=".NET 2.0" /><remarks><attribution license="cc4" from="Microsoft" modified="false" /><para>The <see cref="M:System.Threading.SynchronizationContext.Wait(System.IntPtr[],System.Boolean,System.Int32)" /> method calls the external declaration <see cref="M:System.Threading.SynchronizationContext.WaitHelper(System.IntPtr[],System.Boolean,System.Int32)" /> to perform the wait activity.  Override the <see cref="M:System.Threading.SynchronizationContext.Wait(System.IntPtr[],System.Boolean,System.Int32)" /> method to change the wait behavior for the synchronization context.</para></remarks><summary><attribution license="cc4" from="Microsoft" modified="false" /><para>Waits for any or all the elements in the specified array to receive a signal.</para></summary><returns><attribution license="cc4" from="Microsoft" modified="false" /><para>The array index of the object that satisfied the wait.</para></returns><param name="waitHandles"><attribution license="cc4" from="Microsoft" modified="false" />An array of type <see cref="T:System.IntPtr" /> that contains the native operating system handles.</param><param name="waitAll"><attribution license="cc4" from="Microsoft" modified="false" />true to wait for all handles; false to wait for any handle. </param><param name="millisecondsTimeout"><attribution license="cc4" from="Microsoft" modified="false" />The number of milliseconds to wait, or <see cref="F:System.Threading.Timeout.Infinite" /> (-1) to wait indefinitely.</param></Docs></Member><Member MemberName="WaitHelper"><MemberSignature Language="C#" Value="protected static int WaitHelper (IntPtr[] waitHandles, bool waitAll, int millisecondsTimeout);" /><MemberSignature Language="ILAsm" Value=".method familystatic hidebysig int32 WaitHelper(native int[] waitHandles, bool waitAll, int32 millisecondsTimeout) cil managed" /><MemberType>Method</MemberType><AssemblyInfo><AssemblyVersion>2.0.0.0</AssemblyVersion><AssemblyVersion>4.0.0.0</AssemblyVersion></AssemblyInfo><Attributes><Attribute><AttributeName>System.CLSCompliant(false)</AttributeName></Attribute><Attribute><AttributeName>System.Runtime.ConstrainedExecution.PrePrepareMethod</AttributeName></Attribute><Attribute><AttributeName>System.Runtime.ConstrainedExecution.ReliabilityContract(System.Runtime.ConstrainedExecution.Consistency.WillNotCorruptState, System.Runtime.ConstrainedExecution.Cer.MayFail)</AttributeName></Attribute></Attributes><ReturnValue><ReturnType>System.Int32</ReturnType></ReturnValue><Parameters><Parameter Name="waitHandles" Type="System.IntPtr[]" /><Parameter Name="waitAll" Type="System.Boolean" /><Parameter Name="millisecondsTimeout" Type="System.Int32" /></Parameters><Docs><since version=".NET 2.0" /><remarks><attribution license="cc4" from="Microsoft" modified="false" /><para><see cref="M:System.Threading.SynchronizationContext.WaitHelper(System.IntPtr[],System.Boolean,System.Int32)" /> is a declaration for an unmanaged external helper function. <see cref="M:System.Threading.SynchronizationContext.WaitHelper(System.IntPtr[],System.Boolean,System.Int32)" /> is called by the <see cref="M:System.Threading.SynchronizationContext.Wait(System.IntPtr[],System.Boolean,System.Int32)" /> method to wait for a signal for the specified operating system handles.</para></remarks><summary><attribution license="cc4" from="Microsoft" modified="false" /><para>Helper function that waits for any or all the elements in the specified array to receive a signal.</para></summary><returns><attribution license="cc4" from="Microsoft" modified="false" /><para>The array index of the object that satisfied the wait.</para></returns><param name="waitHandles"><attribution license="cc4" from="Microsoft" modified="false" />An array of type <see cref="T:System.IntPtr" /> that contains the native operating system handles.</param><param name="waitAll"><attribution license="cc4" from="Microsoft" modified="false" />true to wait for all handles;  false to wait for any handle. </param><param name="millisecondsTimeout"><attribution license="cc4" from="Microsoft" modified="false" />The number of milliseconds to wait, or <see cref="F:System.Threading.Timeout.Infinite" /> (-1) to wait indefinitely.</param></Docs></Member></Members></Type>