Example #1
0
 /// <summary>
 /// 等待设置数据
 /// </summary>
 /// <param name="value">设置的数据</param>
 public WaitSetValue(valueType value)
 {
     this.value = value;
     wait       = new AutoCSer.Threading.WaitHandle();
     if (value == null)
     {
         wait.Set(0);
     }
 }
Example #2
0
        /// <summary>
        /// 加载成员扩展缓存初始化依赖类型
        /// </summary>
        /// <param name="tableType">表格类型</param>
        /// <param name="cacheTypes">表格成员扩展缓存初始化依赖类型集合</param>
        internal static void Load(Type tableType, HashSet <Type> cacheTypes)
        {
            MemberCacheWait wait;

            Monitor.Enter(loadedLock);
            try
            {
                if (loadTypes.TryGetValue(tableType, out wait))
                {
                    wait.set(tableType, cacheTypes);
                }
                else
                {
                    loadTypes.Add(tableType, wait = new MemberCacheWait(cacheTypes));
                }
            }
            finally { Monitor.Exit(loadedLock); }
        }