The only place where you can safely use async void is in event handlers. Consider the following code:
private async Task<bool> SomeFuncAsync() {
...
await ...
}
public void button1_Click(object sender, EventArgs e) {
var result = SomeFuncAsync().Result;
SomeOtherFunc();
}
...