Skip to main content
Commonmark migration
Source Link

#Async & Await Simple Explanation

Async & Await Simple Explanation

#Async & Await Simple Explanation

Async & Await Simple Explanation

deleted 3 characters in body
Source Link
James Mallon
  • 1.1k
  • 9
  • 26

Async & Await Simple Explanation #Async & Await Simple Explanation

Async & Await Simple Explanation

#Async & Await Simple Explanation

added 36 characters in body
Source Link
James Mallon
  • 1.1k
  • 9
  • 26
    //ASYNCHRONOUS
    //this is called using the await keyword every 5 seconds from a polling timer or something.

    async Task CheckWeather()
    {
        var weather = await GetWeather();
        //do something with the weather now you have it
    }

    async Task<WeatherResult> GetWeather()
    {

        var weatherJson = await CallToNetworkAddressToGetWeather();
        return deserializeJson<weatherJson>(weatherJson);
    }

    //SYNCHRONOUS
    //This method is called whenever the screen is pressed
    void ScreenPressed()
    {
        DrawSketchOnScreen();
    }

Additional Notes - Update

I forgot to mention in my original notes that in C# you can only await methods that are wrapped in Tasks. for example you may await this method:

// awaiting this will return a string.
// calling this without await (synchronously) will result in a Task<string> object.
async Task<string> FetchHelloWorld() {..

You cannot await methods that are not tasks like this:

async string FetchHelloWorld() {..

Feel free to review the source code for the Task class here.

    //ASYNCHRONOUS
    //this is called every 5 seconds from a polling timer or something.

    async Task CheckWeather()
    {
        var weather = await GetWeather();
        //do something with the weather now you have it
    }

    async Task<WeatherResult> GetWeather()
    {

        var weatherJson = await CallToNetworkAddressToGetWeather();
        return deserializeJson<weatherJson>(weatherJson);
    }

    //SYNCHRONOUS
    //This method is called whenever the screen is pressed
    void ScreenPressed()
    {
        DrawSketchOnScreen();
    }
    //ASYNCHRONOUS
    //this is called using the await keyword every 5 seconds from a polling timer or something.

    async Task CheckWeather()
    {
        var weather = await GetWeather();
        //do something with the weather now you have it
    }

    async Task<WeatherResult> GetWeather()
    {

        var weatherJson = await CallToNetworkAddressToGetWeather();
        return deserializeJson<weatherJson>(weatherJson);
    }

    //SYNCHRONOUS
    //This method is called whenever the screen is pressed
    void ScreenPressed()
    {
        DrawSketchOnScreen();
    }

Additional Notes - Update

I forgot to mention in my original notes that in C# you can only await methods that are wrapped in Tasks. for example you may await this method:

// awaiting this will return a string.
// calling this without await (synchronously) will result in a Task<string> object.
async Task<string> FetchHelloWorld() {..

You cannot await methods that are not tasks like this:

async string FetchHelloWorld() {..

Feel free to review the source code for the Task class here.

added 36 characters in body
Source Link
James Mallon
  • 1.1k
  • 9
  • 26
Loading
Source Link
James Mallon
  • 1.1k
  • 9
  • 26
Loading