What you should know about Threads in .NET

Поділитися
Вставка
  • Опубліковано 7 чер 2024
  • Nobody is using threads directly anymore in the .NET world we all rather rely on asynchronous Tasks which are executed by threads which are managed by the thread pool, so the only useful thing about threads is knowing how they run your async tasks.
    Support my Work 🤝 / raw_coding
    Buy my Courses 📚 learning.raw-coding.dev
    Buy my Merch 🛒 shop.raw-coding.dev
    Join the Community 💬 / discord
    Tweet Tweet 📣 / anton_t0shik
    Tune in LIVE! 🎥 / raw_coding
    #aspnetcore #dotnet #csharp

КОМЕНТАРІ • 27

  • @denis.akopyan
    @denis.akopyan 3 місяці тому +21

    This is a very important video for understanding threads and async code. I strongly suggest using visuals. I personally love your cog analogy, but images might help the mind focus on understanding the concepts without putting too much effort of visualizing a cog.
    Even a clumsy ms paint picture can go a long way.

    • @eddypartey1075
      @eddypartey1075 3 місяці тому +2

      Exactly! Got the same idea while was watching vid

  • @fieryscorpion
    @fieryscorpion 3 місяці тому +13

    This would have been a great video with some diagrams or animations.
    Felt really hard to follow, so I'll probably have to watch it few more times to understand.

    • @user-tv9sm8bb8w
      @user-tv9sm8bb8w 3 місяці тому +1

      Agree

    • @sergeys5270
      @sergeys5270 3 місяці тому +1

      it would be clearer if there was a simple visual presentation

  • @vedantkoditkar5968
    @vedantkoditkar5968 3 місяці тому +5

    Would be great if you could or already have a video about how such situations can be handled by refactoring the code.

  • @SuperKombain
    @SuperKombain 3 місяці тому

    Thank you so much for a dark IDE theme! Appreciate you've heard my ask 🙏

  • @Jebediah_w
    @Jebediah_w 3 місяці тому

    Love the in depthness of this one.

  • @naitik_
    @naitik_ 3 місяці тому

    One more thing to add to this:
    - Normally, the Task approach is a good thing. It saves the application from hogging all the threads of the machine and juggles small operations on threads. Like one more layer of juggling on a processor. And it protects beginners from messing up with direct threads. Only for advanced level scenarios one may have to deal with direct threads.

  • @parkerwarner8688
    @parkerwarner8688 3 місяці тому +1

    Love the video. What would be the case of a blocking task? Or something that would jam the thread and not finish? Trying to think of a real world example

    • @RawCoding
      @RawCoding  3 місяці тому +1

      There shouldn’t be. This tended to happen when people mixed non async synchronisation tools with async code such as locks, which are used inside Semaphore (not slim) ConcurrentBag etc…

  • @charles_kuperus
    @charles_kuperus 3 місяці тому

    That was awesome video About tasks and threads. Would you do a video on configure await equals false vs true?

  • @_OsamaAmir
    @_OsamaAmir 3 місяці тому +2

    so if tasks are jamming the threads, is it not a bad idea to use a lot of await keywords, if I remember correctly, you told in your async await video that if awaiting is not required, we should just return a Task and manage awaiting higher up the chain of functions,
    my question is that just making, running and returning tasks without using await, do they also block the threads, or do they perform the operation synchronously it is a bit confusing so can you guide on that a bit

    • @RawCoding
      @RawCoding  3 місяці тому +2

      Everytime you write await, you are creating a cog before and after the await, the thread pool will place those cogs on the thread.
      Cogs don’t block, statements such as lock, and getawaitergetresult cause cogs to block.

  • @gustavnilsson6597
    @gustavnilsson6597 3 місяці тому

    Brilliant!

  • @veec1539
    @veec1539 3 місяці тому

    Love the videos, though miss the light mode with shades

  • @thishandleistaken
    @thishandleistaken 3 місяці тому +2

    Something went wrong with the audio and video, it's not synced.

  • @GrimReaper160490
    @GrimReaper160490 3 місяці тому

    Is it just me or is the audio desynched from the video?

  • @ragtop63
    @ragtop63 3 місяці тому

    Although I understand what you’re trying to illustrate, I feel like the cog analogy isn’t as intuitive as might have first seemed. Also, working visuals would help a lot too.

  • @TheJohndward01
    @TheJohndward01 3 місяці тому

    Yay for darkmode!!!

  • @gordonfreimann
    @gordonfreimann 3 місяці тому +1

    can you make video of c# scripting with roslyn?

    • @RawCoding
      @RawCoding  3 місяці тому

      I have a bunch of vids like that on my video looking for anything specific?

  • @wobblejuice
    @wobblejuice 3 місяці тому +7

    the voice is out of sync...

  • @Riketta
    @Riketta 3 місяці тому

    Nice beard

  • @ethanr0x
    @ethanr0x 3 місяці тому

    You need to explain and demonstrate better how ACTUAL threads execute an ACTUAL task with logging the Thread.ID for example before this video can really make sense.
    Now I am left with the idea that different threadpool threads execute different segments of the underlying task state machine but why do they not execute all of it? Why exactly?

  • @ilyahryapko
    @ilyahryapko 3 місяці тому +1

    English is too much of a non-native language for me to listen repeating "cogs" to be honest :)
    Anyways, Anton, your videos are just diamonds in all that junk of modern .net content. Thank you!