async, instead of callbacks, as these can lead to spaghetti/macaroni code.

In the method that does the call that takes a while:

  • Mark the method as async
  • Change the return type T to Task<T>
  • Change the call to TaskAsync call type
         -  eg. Client.DownloadString becomes Client.DownloadStringTaskAsync
  • Place  await immediately to right of the = in the call statement

    In the calling method:
    - Mark it as async
    - Place an await in front of the call to  the above method