﻿<?xml version="1.0" encoding="utf-8"?><Type Name="IAsyncResult" FullName="System.IAsyncResult" FullNameSP="System_IAsyncResult" Maintainer="ecma"><TypeSignature Language="ILASM" Value=".class interface public abstract IAsyncResult" /><TypeSignature Language="C#" Value="public interface IAsyncResult" /><TypeSignature Language="ILAsm" Value=".class public interface auto ansi abstract IAsyncResult" /><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>1.0.5000.0</AssemblyVersion><AssemblyVersion>2.0.0.0</AssemblyVersion><AssemblyVersion>4.0.0.0</AssemblyVersion></AssemblyInfo><Interfaces /><Attributes><Attribute><AttributeName>System.Runtime.InteropServices.ComVisible(true)</AttributeName></Attribute></Attributes><Docs><remarks><attribution license="cc4" from="Microsoft" modified="false" /><para>The <see cref="T:System.IAsyncResult" /> interface is implemented by classes containing methods that can operate asynchronously. It is the return type of methods that initiate an asynchronous operation, such as <see cref="M:System.IO.FileStream.BeginRead(System.Byte[],System.Int32,System.Int32,System.AsyncCallback,System.Object)" />, and it is passed to methods that conclude an asynchronous operation, such as <see cref="M:System.IO.FileStream.EndRead(System.IAsyncResult)" />. <see cref="T:System.IAsyncResult" /> objects are also passed to methods invoked by <see cref="T:System.AsyncCallback" /> delegates when an asynchronous operation completes.</para><para>An object that supports the <see cref="T:System.IAsyncResult" /> interface stores state information for an asynchronous operation and provides a synchronization object to allow threads to be signaled when the operation completes.</para><block subset="none" type="note"><para>The <see cref="T:System.Runtime.Remoting.Messaging.AsyncResult" /> class is the implementation of <see cref="T:System.IAsyncResult" /> that is returned by the BeginInvoke method when you use a delegate to call a method asynchronously.</para></block><para>For a detailed description of how the <see cref="T:System.IAsyncResult" /> interface is used, see the <format type="text/html"><a href="41972034-92ED-450A-9664-AB93FCC6F1FB">Calling Synchronous Methods Asynchronously</a></format> topic.</para></remarks><summary><attribution license="cc4" from="Microsoft" modified="false" /><para>Represents the status of an asynchronous operation. </para></summary></Docs><Members><Member MemberName="AsyncState"><MemberSignature Language="ILASM" Value=".property object AsyncState { public hidebysig virtual abstract specialname object get_AsyncState() }" /><MemberSignature Language="C#" Value="public object AsyncState { get; }" /><MemberSignature Language="ILAsm" Value=".property instance object AsyncState" /><MemberType>Property</MemberType><AssemblyInfo><AssemblyVersion>1.0.5000.0</AssemblyVersion><AssemblyVersion>2.0.0.0</AssemblyVersion><AssemblyVersion>4.0.0.0</AssemblyVersion></AssemblyInfo><ReturnValue><ReturnType>System.Object</ReturnType></ReturnValue><Parameters /><Docs><value><para>The supplied <see cref="T:System.Object" />.</para></value><remarks><attribution license="cc4" from="Microsoft" modified="false" /><para>This property returns the object that is the last parameter of the method that initiates an asynchronous operation.</para></remarks><summary><attribution license="cc4" from="Microsoft" modified="false" /><para>Gets a user-defined object that qualifies or contains information about an asynchronous operation.</para></summary></Docs><Excluded>0</Excluded></Member><Member MemberName="AsyncWaitHandle"><MemberSignature Language="ILASM" Value=".property class System.Threading.WaitHandle AsyncWaitHandle { public hidebysig virtual abstract specialname class System.Threading.WaitHandle get_AsyncWaitHandle() }" /><MemberSignature Language="C#" Value="public System.Threading.WaitHandle AsyncWaitHandle { get; }" /><MemberSignature Language="ILAsm" Value=".property instance class System.Threading.WaitHandle AsyncWaitHandle" /><MemberType>Property</MemberType><AssemblyInfo><AssemblyVersion>1.0.5000.0</AssemblyVersion><AssemblyVersion>2.0.0.0</AssemblyVersion><AssemblyVersion>4.0.0.0</AssemblyVersion></AssemblyInfo><ReturnValue><ReturnType>System.Threading.WaitHandle</ReturnType></ReturnValue><Parameters /><Docs><value><para>A <see cref="T:System.Threading.WaitHandle" /> that is signaled when an asynchronous operation completes.</para></value><remarks><attribution license="cc4" from="Microsoft" modified="false" /><para>The return value allows the client to wait for an asynchronous operation to complete instead of polling <see cref="P:System.IAsyncResult.IsCompleted" /> until the operation concludes. The return value can be used to perform a <see cref="M:System.Threading.WaitHandle.WaitOne(System.Int32,System.Boolean)" />, <see cref="M:System.Threading.WaitHandle.WaitAny(System.Threading.WaitHandle[],System.Int32,System.Boolean)" />, or <see cref="M:System.Threading.WaitHandle.WaitAll(System.Threading.WaitHandle[],System.Int32,System.Boolean)" /> operation.</para><para>The common language runtime supplies a number of waitable objects, such as <see cref="T:System.Threading.ManualResetEvent" />, <see cref="T:System.Threading.AutoResetEvent" />, and <see cref="T:System.Threading.Mutex" />, all of which mirror Win32 synchronization primitives.</para></remarks><summary><attribution license="cc4" from="Microsoft" modified="false" /><para>Gets a <see cref="T:System.Threading.WaitHandle" /> that is used to wait for an asynchronous operation to complete.</para></summary></Docs><Excluded>0</Excluded></Member><Member MemberName="CompletedSynchronously"><MemberSignature Language="ILASM" Value=".property bool CompletedSynchronously { public hidebysig virtual abstract specialname bool get_CompletedSynchronously() }" /><MemberSignature Language="C#" Value="public bool CompletedSynchronously { get; }" /><MemberSignature Language="ILAsm" Value=".property instance bool CompletedSynchronously" /><MemberType>Property</MemberType><AssemblyInfo><AssemblyVersion>1.0.5000.0</AssemblyVersion><AssemblyVersion>2.0.0.0</AssemblyVersion><AssemblyVersion>4.0.0.0</AssemblyVersion></AssemblyInfo><ReturnValue><ReturnType>System.Boolean</ReturnType></ReturnValue><Parameters /><Docs><value><para><see langword="true" /> if the operation synchronously;
   otherwise <see langword="false" />. </para></value><remarks><attribution license="cc4" from="Microsoft" modified="false" /><para>If the synchronous completion of the call is detected in the <see cref="T:System.AsyncCallback" /> delegate, it is probable that the thread that initiated the asynchronous operation is the current thread.</para></remarks><summary><attribution license="cc4" from="Microsoft" modified="false" /><para>Gets a value that indicates whether the asynchronous operation completed synchronously.</para></summary></Docs><Excluded>0</Excluded></Member><Member MemberName="IsCompleted"><MemberSignature Language="ILASM" Value=".property bool IsCompleted { public hidebysig virtual abstract specialname bool get_IsCompleted() }" /><MemberSignature Language="C#" Value="public bool IsCompleted { get; }" /><MemberSignature Language="ILAsm" Value=".property instance bool IsCompleted" /><MemberType>Property</MemberType><AssemblyInfo><AssemblyVersion>1.0.5000.0</AssemblyVersion><AssemblyVersion>2.0.0.0</AssemblyVersion><AssemblyVersion>4.0.0.0</AssemblyVersion></AssemblyInfo><ReturnValue><ReturnType>System.Boolean</ReturnType></ReturnValue><Parameters /><Docs><value><para><see langword="true" /> if the operation has completed;
   otherwise <see langword="false" />.</para></value><remarks><attribution license="cc4" from="Microsoft" modified="false" /><para>When this property is true, you can assume it is safe to discard any resources you allocate for use by the asynchronous operation.</para></remarks><summary><attribution license="cc4" from="Microsoft" modified="false" /><para>Gets a value that indicates whether the asynchronous operation has completed.</para></summary></Docs><Excluded>0</Excluded></Member></Members><TypeExcluded>0</TypeExcluded></Type>