c# - await/async odd behaviour -


i have simple console application

using system; using system.collections.generic; using system.linq; using system.text; using system.threading.tasks;  namespace consoleapplication2 {     public class program     {         static void main(string[] args)         {             mockapi api = new mockapi();             task t = api.getversion();             var placebreakpoint = "breakpoint";         }     }      public class mockapi     {         public async task<string> getversion()          {             return await apiversion();         }          private async task<string> apiversion()         {             await task.delay(3000);             return "v1.0";         }     } } 

when ran first time executed expect seeing code go way

await task.delay(3000); 

and returning to

var placebreakpoint = "breakpoint"; 

before returning

return "v1.0"; 

when delay had been completed. running code thereafter sees code execute before never return task.delay. i'm missing fundamental here.

you not waiting task application ends before task has chance complete.

you need wait or await (which can't in main should anywhere else).

static void main(string[] args) {     mockapi api = new mockapi();     task t = api.getversion();     var placebreakpoint = "breakpoint";     t.wait(); } 

Comments

Popular posts from this blog

c# - Validate object ID from GET to POST -

node.js - Custom Model Validator SailsJS -

php - Find a regex to take part of Email -