﻿<?xml version="1.0" encoding="utf-8"?><Type Name="AsyncFlowControl" FullName="System.Threading.AsyncFlowControl"><TypeSignature Language="C#" Value="public struct AsyncFlowControl : IDisposable" /><TypeSignature Language="ILAsm" Value=".class public sequential ansi sealed beforefieldinit AsyncFlowControl extends System.ValueType implements class System.IDisposable" /><AssemblyInfo><AssemblyName>mscorlib</AssemblyName><AssemblyVersion>2.0.0.0</AssemblyVersion><AssemblyVersion>4.0.0.0</AssemblyVersion></AssemblyInfo><Base><BaseTypeName>System.ValueType</BaseTypeName></Base><Interfaces><Interface><InterfaceName>System.IDisposable</InterfaceName></Interface></Interfaces><Docs><since version=".NET 2.0" /><remarks><attribution license="cc4" from="Microsoft" modified="false" /><para>An execution context contains all execution-related information for a logical thread. The flow of the execution context to other threads can be prevented by using the <see cref="M:System.Threading.ExecutionContext.SuppressFlow" /> method, which returns an <see cref="T:System.Threading.AsyncFlowControl" /> structure. The <see cref="M:System.Threading.AsyncFlowControl.Undo" /> method of the returned <see cref="T:System.Threading.AsyncFlowControl" /> structure can be used to undo the flow suppression. The <see cref="T:System.Threading.AsyncFlowControl" /> structure must be used on the same thread on which it was created.</para></remarks><summary><attribution license="cc4" from="Microsoft" modified="false" /><para>Provides the functionality to restore the migration, or flow, of the execution context between threads.  </para></summary></Docs><Members><Member MemberName="Dispose"><MemberSignature Language="C#" Value="public void Dispose ();" /><MemberSignature Language="ILAsm" Value=".method public hidebysig newslot virtual instance void Dispose() cil managed" /><MemberType>Method</MemberType><AssemblyInfo><AssemblyVersion>4.0.0.0</AssemblyVersion></AssemblyInfo><ReturnValue><ReturnType>System.Void</ReturnType></ReturnValue><Parameters /><Docs><remarks><attribution license="cc4" from="Microsoft" modified="false" /><para>Call Dispose when you are finished using the <see cref="T:System.Threading.AsyncFlowControl" />. The Dispose method leaves the <see cref="T:System.Threading.AsyncFlowControl" /> in an unusable state. After calling Dispose, you must release all references to the <see cref="T:System.Threading.AsyncFlowControl" /> so the garbage collector can reclaim the memory that the <see cref="T:System.Threading.AsyncFlowControl" /> was occupying.</para><para>For more information, see <format type="text/html"><a href="A17B0066-71C2-4BA4-9822-8E19332FC213">Cleaning Up Unmanaged Resources</a></format> and <format type="text/html"><a href="eb4e1af0-3b48-4fbc-ad4e-fc2f64138bf9">Implementing a Dispose Method</a></format>.</para><block subset="none" type="note"><para>Always call Dispose before you release your last reference to the <see cref="T:System.Threading.AsyncFlowControl" />. Otherwise, the resources it is using will not be freed until the garbage collector calls the <see cref="T:System.Threading.AsyncFlowControl" /> object's Finalize method.</para></block></remarks><summary><attribution license="cc4" from="Microsoft" modified="false" /><para>Releases all resources used by the current instance of the <see cref="T:System.Threading.AsyncFlowControl" /> class.</para></summary></Docs></Member><Member MemberName="Equals"><MemberSignature Language="C#" Value="public override bool Equals (object obj);" /><MemberSignature Language="ILAsm" Value=".method public hidebysig virtual instance bool Equals(object obj) 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><Parameter Name="obj" Type="System.Object" /></Parameters><Docs><remarks>To be added.</remarks><since version=".NET 2.0" /><summary><attribution license="cc4" from="Microsoft" modified="false" /><para>Determines whether the specified object is equal to the current <see cref="T:System.Threading.AsyncFlowControl" /> structure. </para></summary><returns><attribution license="cc4" from="Microsoft" modified="false" /><para>true if <paramref name="obj" /> is an <see cref="T:System.Threading.AsyncFlowControl" /> structure and is equal to the current <see cref="T:System.Threading.AsyncFlowControl" /> structure; otherwise, false. </para></returns><param name="obj"><attribution license="cc4" from="Microsoft" modified="false" />An object to compare with the current structure.</param></Docs></Member><Member MemberName="Equals"><MemberSignature Language="C#" Value="public bool Equals (System.Threading.AsyncFlowControl obj);" /><MemberSignature Language="ILAsm" Value=".method public hidebysig instance bool Equals(valuetype System.Threading.AsyncFlowControl obj) 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><Parameter Name="obj" Type="System.Threading.AsyncFlowControl" /></Parameters><Docs><remarks>To be added.</remarks><since version=".NET 2.0" /><summary><attribution license="cc4" from="Microsoft" modified="false" /><para>Determines whether the specified <see cref="T:System.Threading.AsyncFlowControl" /> structure is equal to the current <see cref="T:System.Threading.AsyncFlowControl" /> structure.</para></summary><returns><attribution license="cc4" from="Microsoft" modified="false" /><para>true if <paramref name="obj" /> is equal to the current <see cref="T:System.Threading.AsyncFlowControl" /> structure; otherwise, false.</para></returns><param name="obj"><attribution license="cc4" from="Microsoft" modified="false" />An <see cref="T:System.Threading.AsyncFlowControl" /> structure to compare with the current structure.</param></Docs></Member><Member MemberName="GetHashCode"><MemberSignature Language="C#" Value="public override int GetHashCode ();" /><MemberSignature Language="ILAsm" Value=".method public hidebysig virtual instance int32 GetHashCode() cil managed" /><MemberType>Method</MemberType><AssemblyInfo><AssemblyVersion>2.0.0.0</AssemblyVersion><AssemblyVersion>4.0.0.0</AssemblyVersion></AssemblyInfo><ReturnValue><ReturnType>System.Int32</ReturnType></ReturnValue><Parameters /><Docs><remarks>To be added.</remarks><since version=".NET 2.0" /><summary><attribution license="cc4" from="Microsoft" modified="false" /><para>Gets a hash code for the current <see cref="T:System.Threading.AsyncFlowControl" /> structure.</para></summary><returns><attribution license="cc4" from="Microsoft" modified="false" /><para>A hash code for the current <see cref="T:System.Threading.AsyncFlowControl" /> structure.</para></returns></Docs></Member><Member MemberName="op_Equality"><MemberSignature Language="C#" Value="public static bool op_Equality (System.Threading.AsyncFlowControl a, System.Threading.AsyncFlowControl b);" /><MemberSignature Language="ILAsm" Value=".method public static hidebysig specialname bool op_Equality(valuetype System.Threading.AsyncFlowControl a, valuetype System.Threading.AsyncFlowControl b) 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><Parameter Name="a" Type="System.Threading.AsyncFlowControl" /><Parameter Name="b" Type="System.Threading.AsyncFlowControl" /></Parameters><Docs><remarks>To be added.</remarks><summary><attribution license="cc4" from="Microsoft" modified="false" /><para>Compares two <see cref="T:System.Threading.AsyncFlowControl" /> structures to determine whether they are equal. </para></summary><returns><attribution license="cc4" from="Microsoft" modified="false" /><para>true if the two structures are equal; otherwise, false. </para></returns><param name="a"><attribution license="cc4" from="Microsoft" modified="false" />An <see cref="T:System.Threading.AsyncFlowControl" /> structure.</param><param name="b"><attribution license="cc4" from="Microsoft" modified="false" />An <see cref="T:System.Threading.AsyncFlowControl" /> structure.</param></Docs></Member><Member MemberName="op_Inequality"><MemberSignature Language="C#" Value="public static bool op_Inequality (System.Threading.AsyncFlowControl a, System.Threading.AsyncFlowControl b);" /><MemberSignature Language="ILAsm" Value=".method public static hidebysig specialname bool op_Inequality(valuetype System.Threading.AsyncFlowControl a, valuetype System.Threading.AsyncFlowControl b) 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><Parameter Name="a" Type="System.Threading.AsyncFlowControl" /><Parameter Name="b" Type="System.Threading.AsyncFlowControl" /></Parameters><Docs><remarks>To be added.</remarks><summary><attribution license="cc4" from="Microsoft" modified="false" /><para>Compares two <see cref="T:System.Threading.AsyncFlowControl" /> structures to determine whether they are not equal. </para></summary><returns><attribution license="cc4" from="Microsoft" modified="false" /><para>true if the structures are not equal; otherwise, false. </para></returns><param name="a"><attribution license="cc4" from="Microsoft" modified="false" />An <see cref="T:System.Threading.AsyncFlowControl" /> structure.</param><param name="b"><attribution license="cc4" from="Microsoft" modified="false" />An <see cref="T:System.Threading.AsyncFlowControl" /> structure.</param></Docs></Member><Member MemberName="System.IDisposable.Dispose"><MemberSignature Language="C#" Value="void IDisposable.Dispose ();" /><MemberType>Method</MemberType><ReturnValue><ReturnType>System.Void</ReturnType></ReturnValue><Parameters /><Docs><since version=".NET 2.0" /><remarks><attribution license="cc4" from="Microsoft" modified="false" /><para>This method calls the <see cref="M:System.Threading.AsyncFlowControl.Undo" /> method to restore the associated <see cref="T:System.Threading.ExecutionContext" /> to its previous state.</para></remarks><summary><attribution license="cc4" from="Microsoft" modified="false" /><para>Releases all resources used by the <see cref="T:System.Threading.AsyncFlowControl" />.</para></summary></Docs><AssemblyInfo><AssemblyVersion>2.0.0.0</AssemblyVersion></AssemblyInfo></Member><Member MemberName="Undo"><MemberSignature Language="C#" Value="public void Undo ();" /><MemberSignature Language="ILAsm" Value=".method public hidebysig instance void Undo() 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 <see cref="M:System.Threading.ExecutionContext.SuppressFlow" /> method returns an <see cref="T:System.Threading.AsyncFlowControl" /> structure that is used to restore the flow.</para><para>The <see cref="M:System.Threading.AsyncFlowControl.Undo" /> method must be called only on the <see cref="T:System.Threading.AsyncFlowControl" /> structure returned by its associated <see cref="M:System.Threading.ExecutionContext.SuppressFlow" /> method.</para></remarks><summary><attribution license="cc4" from="Microsoft" modified="false" /><para>Restores the flow of the execution context between threads.</para></summary></Docs></Member></Members></Type>