Since this library can be used on desktop application, the library should use ConfigureAwait(false). Otherwise, the dispatcher thread can be deadlocked. Currently, I need to work around this issue by kick off the logic using Task.Run(()=>...); This is not ideal.