How to safely call an async method in C# without await

If you want to get the exception “asynchronously”, you could do:

    ContinueWith(t => Console.WriteLine(t.Exception),

This will allow you to deal with an exception on a thread other than the “main” thread. This means you don’t have to “wait” for the call to MyAsyncMethod() from the thread that calls MyAsyncMethod; but, still allows you to do something with an exception–but only if an exception occurs.


technically, you could do something similar with await:

    await MyAsyncMethod().ConfigureAwait(false);
catch (Exception ex)

…which would be useful if you needed to specifically use try/catch (or using) but I find the ContinueWith to be a little more explicit because you have to know what ConfigureAwait(false) means.

Leave a Comment