Using async keyword in windows runtime components
Creating a background task for a UWP app requires a Windows Runtime Component as host
(for out-of-process background tasks). Among the limitations for creating Windows Runtime Components is the inability to expose Task and Task<TResult> as part of the signature of a public method.
To get around this, the async method needs to be changed from public to internal/private (depending on local scope) and a public wrapper method provided.