I know it is considered generally a bad idea to use fire-and-forget async void methods to start tasks, because there is no track of the pending task and it is t
The guideline is to avoid async void except when used in an event handler, so using async void in an event handler is OK.
That said, for unit testing reasons I often like to factor out the logic of all async void methods. E.g.,
public async Task OnFormLoadAsync(object sender, EventArgs e)
{
await Task.Delay(2000);
...
}
private async void Form_Load(object sender, EventArgs e)
{
await OnFormLoadAsync(sender, e);
}