Back to Basics: Efficient Async and Await - Filip Ekberg - NDC Oslo 2023

Поділитися
Вставка
  • Опубліковано 19 жов 2024
  • We've all experienced deadlocks, and we all hate them, but how do we prevent (and potentially fix) them?
    That's right, no one likes applications crashing or giving users an unexpected behavior.
    Introducing asynchronous patterns is so much more than just applying async and await to your methods; you really, I mean really, need to understand what's going on.
    In this session, we'll make sure you know how to avoid crashing your applications, and how to adhere to best practices when applying asynchronous patterns in our .NET applications.
    Check out our new channel:
    NDC Clips:
    ‪@ndcclips‬
    Check out more of our featured speakers and talks at
    ndcconferences...
    ndcoslo.com/

КОМЕНТАРІ • 33

  • @dereks6742
    @dereks6742 Рік тому +10

    The joke at the beginning was great! 🤣

  • @Pemo99
    @Pemo99 Рік тому +5

    I really like the approach of explaining the role of the Task class before explaining Async and Aeait

  • @iamkaransethi
    @iamkaransethi Рік тому

    Really useful. Clears a lot of my concerns on using these asynchronous keywords and concept. Great talk, Filip. Cheers!

  • @eddypartey1075
    @eddypartey1075 10 місяців тому

    It's was good material, thanks for sharing!

  • @Tobarja
    @Tobarja Рік тому +30

    I almost clicked away.

    • @seppe317777
      @seppe317777 Рік тому +2

      same 🤣

    • @Dominik-ji9qi
      @Dominik-ji9qi Рік тому +2

      I actually clicked away but the second I hit the back arrow in my browser, he said it was a joke, so I restarted the video 😂

    • @climatechangedoesntbargain9140
      @climatechangedoesntbargain9140 Рік тому +1

      I clicked away after hearing C#, hoped for Rust

    • @raiesala6480
      @raiesala6480 Рік тому

      Same , was like wtf js 😂😂

  • @diegofaria8187
    @diegofaria8187 Рік тому

    Thank you for share your knowledge.

  • @AshiqurRahman-j9i
    @AshiqurRahman-j9i Рік тому +5

    Awesome

  • @BrianHallmanac
    @BrianHallmanac Рік тому +4

    Regarding the statements on ConfigureAwait, does this mean we no longer need to add .ConfigureAwait(false) on "library code"?

    • @skypravda
      @skypravda 8 місяців тому

      Actually, we still do need it as our code can be used with a custom scheduler.

  • @onmico
    @onmico Рік тому

    Great talk!

  • @dantealexis7835
    @dantealexis7835 19 днів тому

    Never mind me just bookmarking smthg. Avoiding deadlocks
    44:00

  • @garcipat
    @garcipat 2 місяці тому

    the thing at 45:15 is verda debatable. the method is ignored if an exception happens and hidden in the stacktrace.

  • @JeffChentingwei628
    @JeffChentingwei628 Рік тому +3

    50:47 Streams

  • @GeorgeTsiros
    @GeorgeTsiros 2 місяці тому

    I am unconvinced you are knowledgeable enough. "Contextual keyword" _does not_ mean "they don't have an impact on the IL". It means they are words _not reserved_ by c#, but instead have meaning only in certain contexts. You can otherwise use them as identifiers. `int await = 1;` will compile, for example.

  • @PaulSebastianM
    @PaulSebastianM Рік тому +3

    13:50 don't be fooled, while this may be funny now, reading code with bad naming conventions several days later will have you pulling your hairs out.

  • @Christobanistan
    @Christobanistan 7 місяців тому

    58:30 This makes no sense. In a .Net Core WPF, you still need to do things on the UI thread. Or are you expected to use the Dispatcher for all the UI code in an async method?

    • @djchrisi
      @djchrisi 5 місяців тому

      But isn't WPFs binding engine taking care about dispatching updates on the UI thread?

  • @TheOneAnOnlyGuy
    @TheOneAnOnlyGuy Рік тому +2

    Did you just rick-roll the whole audience?

  • @Christobanistan
    @Christobanistan 7 місяців тому

    I wish he'd explained the generated code better.

  • @anandshindey
    @anandshindey 10 місяців тому +1

    Nice, but like other presentations, avoids practical stuff, like call async from constructor.

    • @montytrollic
      @montytrollic 4 місяці тому

      constructors cannot be asynchronous

  • @bibuserafim4670
    @bibuserafim4670 2 місяці тому

    I was about to stop the video after his first joke:)))

  • @roelf8044
    @roelf8044 8 місяців тому +1

    4:30 "you don't want to block that operation". Yes, I do. I very much want to block these operations. This is because most of the time the rest of the program relies on successful storage or retrieval of this data. I've worked on numerous web applications, some of which are public facing, serving thousands of users at the same time. And never did I experience thread starvation or extreme lagginess because of those waits. Async await is nice for apps (actually was invented because MS wanted to create Windows Phone). But not needed for web applications. Complete overkill. Web applications are already asynchronous by nature.

    • @artfulperch
      @artfulperch 8 місяців тому +1

      Sorry, maybe I've missed your point, but the purpose of using async in a web app (as far as I get it) is to let the thread be used by other requests. And of course you will have all the data you need at the await point to do whatever you need to form a response.

  • @TrickyCat
    @TrickyCat Рік тому +4

    Sad to see that in 2023 the author was not able to pick a better topic for his talk than the one that has already been covered dozens of times in books, articles, video courses etc.
    Disappointed 😿

    • @MichaelBeck_profile
      @MichaelBeck_profile Рік тому

      It’s strange … isn’t it? Such an old topic.

    • @justadude8716
      @justadude8716 Рік тому +11

      It's knowledge and you are not chained in an underground dungeon told "watch it, or else..." I found it helpful in reminding me of something I forgot over the years.

  • @patriciat.1643
    @patriciat.1643 Рік тому +1

    Anyone who has to watch it inevitably falls asleep.
    Who thinks it's great? Only the makers themselves.
    Groan-