We held our monthly Utah .NET User Group meeting last night (as is traditionally on the 2nd Thursday of the month). Yesterday's topic was Advanced Threading: Beyond Thread.Start(). We touched on basic principles of threading and then dove down into the System.Threading namespace and examined several objects (Thread, ManualResetEvent, AutoResetEvent, Monitor, Interlocked, Exceptions, and much more) as well as several constructs and design patterns. We had the opportunity to discuss different techniques of switching from a calling thread to the UI thread for safe UI, Windows.Forms programming.
The presentation, provided by yours truly, was pretty free form in its approach and without PowerPoint - all demo, all off the cuff. Occasionally, we'd spin up a new topic only to topic.Join() to continue on with the main line of discussion which lead to a pretty dynamic, fun, and exciting meeting. I got the impression that it was well received and that it went over well, which is reassuring since I was purely running on fumes having not eaten or slept since the day before.
Good times!