using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace MsBuildTest { public sealed class Context { const string mutexName = @"Global\JobRunner"; private static Context _instance; private static readonly System.Threading.Mutex _mutex = new System.Threading.Mutex(true, mutexName); public static Context Instance { get { lock (_mutex) { if (_instance == null) { _instance = new Context(); } return _instance; } } } /// /// Gets an ID, under which the task is running. /// public object Id { get; internal set; } } }