34
votes

I'd like to make a function async, so I simply add async like this:

public async static void something(){
}

You can see that its return-type is void. I just want this function to be called asynchronously without blocking, since return is void so no await is needed.

But Visual Studio 2012 just cannot compile this, it says that I miss await?

Could you please advise a sample that makes a function async without using await.

1
Even more interesting is async Methods correct? Resharper warning when Resharper issues warning on async method having await in its body - Gennady Vanin Геннадий Ванин
@ГеннадийВанинНовосибирск, in that question Resharper is complaining about the two methods that don't have await in them, not the main method which does have await. - Matt Smith

1 Answers

33
votes

I think that maybe you misunderstand what async does. The warning is exactly right: if you mark your method async but don't use await anywhere, then your method won't be asynchronous. If you call it, all the code inside the method will execute synchronously.

Also, you should try to avoid using async void methods, they make handling exceptions difficult.