Unless the event gives you the ability to signal back via the event args, you can't do this. .NET events are synchronous by nature. The UI control in this case has to support asynchronicity by providing callback means via the event args. If this particular event doesn't have it, than you are out of luck.
You can make an event handler async by using the async keyword, but the handler will immediately return upon the first await statement. Asynchronous methods are non-blocking methods for a very good reason. They simply pause execution whenever there is an await and resume execution once the awaited task completes, but the method itself immediately returns to the caller in order to free up the UI thread.
So, in principal this is how you would write such an event handler if the control has means to let it know when you are done.
public async void SomeEventHandler(object sender, SomeEventArgs args)
{
await SomeAsyncMethod();
args.Done(); // Provided there is such a thing for this event
}
Now having said that, you can block the UI thread while waiting for a task to complete, but you shouldn't do that. Blocking the UI defeats the whole point of asynchronous programming in the first place.
public void SomeEventHandler(object sender, SomeEventArgs args)
{
SomeAsyncMethod().Wait(); // Block thread until task completes, but really don't do this ever!!!!!
}