Using Mutex to avoid deadlocks

By | August 22, 2011

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 acquired or not… Read More »

Writing inline Code in WPF

By | August 21, 2011

Generally when you create a WPF window, you will get two files automatically created for you. One which represents the XAML, which is stored in .XAML extension file, and another is a class which is stored in a Code-Behind file with .cs extension. But in certain scenarios, it is actually required to write your Code – behind directly… Read More »

ThreadLocal storage in .NET

By | August 19, 2011

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 to create a… Read More »

Barrier in .NET 4.0

By | August 18, 2011

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 sent to wait… Read More »

Use of Interlocked in Race Condition

By | August 17, 2011

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

By | August 15, 2011

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 some CPU Cycle… Read More »