Introduction While studying several articles on the C# IDisposable pattern (e.g. Implementing IDisposable and the Dispose Pattern Properly[^]), I was contemplating on the thread safe access of the Dispose() method. If I have the need to program code that runs exactly once in a multi-threaded environment, there are several approaches. Let's look into some alternatives: Ignorant Approach The ignoran