February 14, 2014
Allows you to determine whether a method is marked with the Async (Visual Basic) or async (C# Reference) modifier.
Assembly: mscorlib (in mscorlib.dll)
Thetype exposes the following members.
|Equals||Infrastructure. Returns a value that indicates whether this instance is equal to a specified object. (Inherited from Attribute.)|
|Finalize||Allows an object to try to free resources and perform other cleanup operations before the Object is reclaimed by garbage collection. (Inherited from Object.)|
|GetHashCode||Returns the hash code for this instance. (Inherited from Attribute.)|
|GetType||Gets the Type of the current instance. (Inherited from Object.)|
|Match||When overridden in a derived class, returns a value that indicates whether this instance equals a specified object. (Inherited from Attribute.)|
|MemberwiseClone||Creates a shallow copy of the current Object. (Inherited from Object.)|
|ToString||Returns a string that represents the current object. (Inherited from Object.)|
You should not apply the AsyncStateMachine attribute to methods in your code. For methods that have the async modifier, the compiler will apply the AsyncStateMachine attribute in the emitted IL.
When a method (methodname) has the Async modifier, then the compiler emits IL that includes a state machine structure that contains the code in the method. The emitted IL also contains a stub method (methodname) that calls into the state machine. The compiler adds the AsyncStateMachine attribute to the stub method, which allows tools to identify the corresponding state machine. Details of the emitted IL are subject to change in future releases of the compilers.
The following example shows how to determine whether a method is marked with Async (Visual Basic) or async (C# Reference) modifier. In IsAsyncMethod, the following steps occur:
A Type object for the attribute is obtained by using GetType Operator (Visual Basic) or typeof (C# Reference).
An attribute object for the method and attribute type is obtained by using MethodInfo.GetCustomAttribute. If GetCustomAttribute returns Nothing (Visual Basic) or null (C#), then the method does not contain the attribute.