Here are the different thread synchronization techniques in C#. Blocking Constructs Sleep Join Task.Wait Locking Constructs Lock Monitor Mutex Semaphore Signaling Constructs AutoResetEvent ManualResetEvent
Singleton vs Static Class
Singleton Class instance can be passed as a parameter to a method whereas static class cannot Singleton class can implement interface(s) or derive from another
Weak Reference in C#
In .NET, by default, a normal reference to any object is a strong reference. So, when you declare a variable of a reference type, you