Similar to Implementing an interface that requires a Task return type in synchronous code although I'm curious if I should just ignore the compiler error my situation generates instead.
Let's say I have an interface like this:
public interface IAmAwesome {
    Task MakeAwesomeAsync();
}
In some implementations making awesome benefits from being done asynchronously using async and await. This is really what the interface is attempting to allow for.
In other cases, perhaps rare, only a simple synchronous method is needed to make awesome. So let's suppose that implementation looks like this:
public class SimplyAwesome : IAmAwesome {
    public async Task MakeAwesomeAsync() {
        // Some really awesome stuff here...
    }
}
This works, but the compiler is warning:
This method lacks 'await' operators and will run synchronously. Consider using the
awaitoperator to await non-blocking API calls, or 'await TaskEx.Run(...)' to do CPU-bound work on a background thread.
The compiler is actually suggesting this solution:
public class SimplyAwesome : IAmAwesome {
    public async Task MakeAwesomeAsync() {
        await Task.Run(() => {
            // Some really awesome stuff here, but on a BACKGROUND THREAD! WOW!
        });
    }
}
My question is - what should determine when I choose to ignore this compiler warning? In some cases the work is so simple that spawning a thread for it is undeniably counter-productive.
 
     
     
     
     
    