private void loadStartMstData()
        {
            string tableDirMaster             = Utils.getTableDirMaster("mst_files");
            string text                       = tableDirMaster + "mst_files.xml";
            IEnumerable <XElement> enumerable = Enumerable.Select <XElement, XElement>(XElement.Load(text).Elements("item"), (XElement file) => file);
            List <XElement>        list       = Enumerable.ToList <XElement>(enumerable);
            int num = Enumerable.Count <XElement>(list);

            this.callCount = num;
            Mst_DataManager.masterAsyncDelegate masterAsyncDelegate = new Mst_DataManager.masterAsyncDelegate(this.LoadElements);
            for (int i = 0; i < num; i++)
            {
                string       value       = list.get_Item(i).get_Value();
                IAsyncResult asyncResult = masterAsyncDelegate.BeginInvoke(value, new AsyncCallback(this.loadCompleteAsynch), masterAsyncDelegate);
            }
        }
        private void loadCompleteAsynch(IAsyncResult ar)
        {
            Mst_DataManager.masterAsyncDelegate            masterAsyncDelegate = (Mst_DataManager.masterAsyncDelegate)ar.get_AsyncState();
            KeyValuePair <string, IEnumerable <XElement> > keyValuePair        = masterAsyncDelegate.EndInvoke(ar);
            object obj = this.lockObj;

            lock (obj)
            {
                this.startMasterElement.Add(keyValuePair.get_Key(), keyValuePair.get_Value());
            }
            Interlocked.Decrement(ref this.callCount);
            if (this.callCount <= 0)
            {
                this.isMasterInit = 2;
                this.initMasterCallback.Invoke();
                this.initMasterCallback = null;
            }
        }