using System.Collections.Generic;
using System.Threading.Tasks;
static public Concurrent<T> Create<T>(T item) where T : class
return new Concurrent<T>(item);
class Concurrent<T> where T : class
protected readonly T _item;
protected object _lockObject = new object();
public Concurrent(T item)
public void Execute(Action<T> action)
public static void Main()
var dict = Concurrent.Create(new Dictionary<string,string>());
Console.WriteLine("{0}={1}", entry.Key, entry.Value);