I'm programming an iOS/Android app in Xamarin. At some points, I want to call asynchronous methods in the shared layer. Sometimes I call a method without awaiting it so other methods can be called. For example when values in the database should be updated (the shared layer handles read/write collisions). I do not care when the method call is finished and therefore I declare the method async void. Visual Studio now shows a warning "asynchronous method '...' should not return void". I know exactly that the method should not be awaited, so why shouldn't the method return void at that point? If I change the return type to task instead, I get warnings to consider using await for the method call which I don't want to.
Another example is retrieving data from the database and updating the UI when the data becomes available. This time I await the method call to the shared layer but in an async void method in the UI class. I want the execution to continue while the data is retrieved, so why is it bad to have an async void method?