bool IsInitializedThreadLocal() { DataSlotWrapper myWrapper = (DataSlotWrapper)Thread.GetData(localStore); if (myWrapper == null) { myWrapper = DataSlotCreator(); Thread.SetData(localStore, myWrapper); } return(myWrapper.Init); }
DataSlotWrapper GetWrapper() { DataSlotWrapper myWrapper = (DataSlotWrapper)Thread.GetData(localStore); if (myWrapper == null) { myWrapper = DataSlotCreator(); Thread.SetData(localStore, myWrapper); } return(myWrapper); }
private static Waiter GetWaiterForCurrentThread() { Waiter waiter = Thread.GetData(waiterSlot) as Waiter; if (waiter == null) { waiter = new Waiter(); Thread.SetData(waiterSlot, waiter); } waiter.signalled = false; return(waiter); }
T GetValueThreadLocal() { DataSlotWrapper myWrapper = Thread.GetData(localStore) as DataSlotWrapper; // In case it's the first time the Thread access its data if (myWrapper == null) { myWrapper = DataSlotCreator(); Thread.SetData(localStore, myWrapper); } return(myWrapper.Getter()); }