Tag Archives: Threading

Flag your own code in multithreading debugging

In previous tip, we have seen how to debug multithread application in Visual Studio.  Debugging multithread application can be simple as well as complex depends on the application complexity. For a small application, where there are only few threads are running you can easily identify and trace them, but when program is complex it could be […]

Using Mutex to avoid deadlocks

Mutex is not new to the .NET framework. The Win32 api supports an object called Mutex and .NET framework class Mutex is actually a wrapper class for the same Win32 kernel mutex object. Mutex objects are generally used to synchronize Threads across process. Mutexes are namable and hence you can signal whether the Mutex is […]

ThreadLocal storage in .NET

Similar to Lazy, ThreadLocal creates object local to one thread. So each individual thread will have its own Lazy initializer object and hence will create the object multiple times once for each thread. In .NET 3.5 or before, you can create objects that are local to one thread using ThreadStatic attribute. But sometimes ThreadStatic fails […]

Barrier in .NET 4.0

Barrier is a new type introduced in .NET 4.0. It allows the user to define the synchronization primitives and lets your Threads to run code simultaneously in predefined phases. A Barrier defines a phases in such a way that the Thread executing some set of code reaches a certain point where it is stopped and […]

Use of Interlocked in Race Condition

Multi-Threading is not new to the programming world. We use multi-threading in our application to enhance the throughput and responsiveness of the application, but with concurrent access of certain resources, the application is prone to deadlocks and Race conditions. The post will guide you through how to avoid such kind of scenarios.

Use of SpinLock for ThreadLocking

Yesterday, I have posted one tip which discusses how you could use ReaderWriterLock to implement shared locking on items that does require concurrent access. Today I will use SpinLock to do the same. SpinLock like Monitor spins a number of CPU cycles when it tries to acquire a lock. Monitor on the other hand Spins […]