static public ContextHandle ObtainHandle(IntPtr context, SCCH value) { lock (NonDetHandles) { ContextHandle hnd; if (NonDetHandles.Count == 0) { hnd = new NondetContextHandle(value); } else { hnd = NonDetHandles.First.Value; NonDetHandles.RemoveFirst(); } hnd.Context = context; hnd.ManagedObject = value; lock (NondetContextHandle.HandleToObject) { NondetContextHandle.ContextToObject[context] = hnd; } return(hnd); } }
public NondetContextHandle(SCCH scch) { ManagedObject = scch; }
public static ContextHandle ObtainHandle(IntPtr context, SCCH value) { lock (NonDetHandles) { ContextHandle hnd; if (NonDetHandles.Count == 0) { hnd = new NondetContextHandle(value); } else { hnd = NonDetHandles.First.Value; NonDetHandles.RemoveFirst(); } hnd.Context = context; hnd.ManagedObject = value; lock (NondetContextHandle.HandleToObject) { NondetContextHandle.ContextToObject[context] = hnd; } return hnd; } }