async and await are two operators that are intended to improve performance by freeing up Threads and waiting for operations to complete before moving forward.
Here's an example of getting a string before returning it's length:
//This method is async because:
//1. It has async and Task or Task<...
C.I.A.s are intended as a simple way of getting attributes from whatever is calling the targeted method. There is really only 1 way to use them and there are only 3 attributes.
Example:
//This is the "calling method": the method that is calling the target method
public void doProcess()
...