Sonar/FxCop are telling us that we shouldn't use void async methods. That's ok. This is the current implementation:private async void InitMethod(ServiceControl serviceControl){    if (serviceControl != null)    {        await Task.Factory.StartNew(() => serviceControl.Execute());    }}// fire and forget ... calling from a non-async method!InitMethod(serviceControl);Is this a good way or how would you refactor this method?private async Task InitMethod(ServiceControl serviceControl){    if (serviceControl != null)    {        await Task.Factory.StartNew(() => serviceControl.Execute());    }}// fire and forget ... calling from a non-async method!// when calling without Start then VS is complaining about not awaiting this methodInitMethod(serviceControl).Start();
Starting a fire and forget async method
c#;async await;task parallel library
Just fire the task without async/await.private void InitMethod(ServiceControl serviceControl){    if (serviceControl != null)    {        Task.Factory.StartNew(() => serviceControl.Execute());    }}In a proper F&F task all exception handling (including a final catch, logging, notifications) is done by the task itself, so you don't need exception handling that async/await provides.Make the method name reflect what it does. I wouldn't mind a name like FireAndForgetXyz