learning threading

hi, i would like to learn about threading with c# and there are alot of resources out there but it looks like some of these are redundant like the information here: http://www.albahari.com/threading/

it is not completely invalid but i think with asyn and await mechanism, may be we dont need these much any more? could you give some guidance on a new learner like me to where to start best and proceed?

Who is Participating?

[Product update] Infrastructure Analysis Tool is now available with Business Accounts.Learn More

I wear a lot of hats...

"The solutions and answers provided on Experts Exchange have been extremely helpful to me over the last few years. I wear a lot of hats - Developer, Database Administrator, Help Desk, etc., so I know a lot of things but not a lot about one thing. Experts Exchange gives me answers from people who do know a lot about one thing, in a easy to use platform." -Todd S.

käµfm³d 👽Commented:
it is not completely invalid but i think with asyn and await mechanism, may be we dont need these much any more?
Not true at all. You need to understand the uses for each. async/await doesn't replace threading; rather it complements it (in a way). async/await is for when you have some work that is going to block on some kind of I/O request. Threading is for when you have work that needs more than one CPU.

I've found Stephen Cleary's articles on async/await to be of good use:  http://blog.stephencleary.com/ . You might also watch the Channel 9 videos on async/await:  https://channel9.msdn.com/Series/Three-Essential-Tips-for-Async

As for threading, I haven't found an article that succinctly covers everything--not that one doesn't exist. I could merely point you to those articles found via Google (et al.). Please wait for others to respond for such.
nicedoneAuthor Commented:
@kaufmed , what do you think of article  http://www.albahari.com/threading/
as for threading concepts?
käµfm³d 👽Commented:
In my opinion, the article is decent as a high-level introduction to threading. The article only discusses the lock keyword as a synchronization mechanism, but there other mechanisms available for synchronoziation, including:

Monitor class (which lock is an alias for)

...and probably a few others. Knowing when to use each is important to writing proper threaded code. You also have things such as the volatile keyword, Thread.MemoryBarrier, and Barrier class that have uses in multi-threading as well, uses which are beyond me at this point in my understanding of threading.
Albahari has a whole FREE E-Book on Threading in C# on his website

Also there are several beginners step by step tutorials
(we cannot post them from competing websites)

Google phrase : Beginners Guide to Threading in .NET

Experts Exchange Solution brought to you by

Your issues matter to us.

Facing a tech roadblock? Get the help and guidance you need from experienced professionals who care. Ask your question anytime, anywhere, with no hassle.

Start your 7-day free trial
It's more than this solution.Get answers and train to solve all your tech problems - anytime, anywhere.Try it for free Edge Out The Competitionfor your dream job with proven skills and certifications.Get started today Stand Outas the employee with proven skills.Start learning today for free Move Your Career Forwardwith certification training in the latest technologies.Start your trial today

From novice to tech pro — start learning today.