public void Reconnect()
        {
            lock (this)
            {
                timerAuto.Stop();

                Initialized = false;
                Initializing = false;
                initCdlStatus = DataInitStatus.NotStart;
                initRtdStatus = DataInitStatus.NotStart;
                cdlLoadingStatus = DownloadStatus.NotStart;
                rtdLoadingStatus = DownloadStatus.NotStart;

                //currentTInterval = AppSetting.INTEVALS[0];
                isUpdateCandle = false;
                isAddCandle = false;

                if (dataCache != null)
                    dataCache.CleanCache();
                else
                    dataCache = new DataCache(this);

                handler = new ProviderHandler(this);
                ProviderService.RegisterHandler(handler);

                dataCache.InitLocalData();
                if (dataCache.DataUnits.ContainsKey(currentTInterval))
                {
                    List<BarData> datas = dataCache.DataUnits[currentTInterval];
                    Console.WriteLine(" datas   count  ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;  " + datas.Count);
                    if (datas.Count > 0)
                    {
                        localLastCdlTime = datas[datas.Count - 1].DateTime;
                       hasLocalLastCdlTime = true;
                    }
                }
                else
                {
                    List<BarData> datas = new List<BarData>();
                    dataCache.DataUnits.Add(currentTInterval, datas);
                }
                ProviderService.KickOff();
            }
            timerInit.Start();
            //RaiseValuesUpdateEvent(UpdateType.NewBar, 1, 0);
        }
        public void Init4Loading()
        {
            Initialized = false;
            Initializing = false;
            initCdlStatus = DataInitStatus.NotStart;
            initRtdStatus = DataInitStatus.NotStart;
            cdlLoadingStatus = DownloadStatus.NotStart;
            rtdLoadingStatus = DownloadStatus.NotStart;

            //currentTInterval = AppSetting.INTEVALS[0];
            isUpdateCandle = false;
            isAddCandle = false;
            dataCache.InitLocalData();
            //List<BarData> datas = new List<BarData>();
            //if (dataCache.DataUnits.ContainsKey(currentTInterval))
            //{
            //    datas = dataCache.DataUnits[currentTInterval];
            //    Console.WriteLine(" datas   count  ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;  " + datas.Count);
            //    if (datas.Count > 0)
            //    {
            //        localLastCdlTime = datas[datas.Count - 1].DateTime;
            //        hasLocalLastCdlTime = true;
            //    }
            //}
            //else
            //{
            //    dataCache.DataUnits.Add(currentTInterval, datas);
            //}
        }
        public void InitCdlFile()
        {
            if (!string.IsNullOrEmpty(cdlFilePath) && cdlLoadingStatus == DownloadStatus.Finished
                && initCdlStatus == DataInitStatus.NotStart)
            {
                Console.WriteLine(" IIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIII  uri  " + hisUri);
                Console.WriteLine(" IIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIII  output file   " + cdlFilePath);

                IFileWorker fw = FileUtil.GetFileWorker();
                List<BarData> datas;
                fw.LoadCdlFile(cdlFilePath, 0, int.MaxValue, out datas, true, false);

                if (datas.Count > 0)
                {
                    Console.WriteLine(" HIs ..................... datas.Count    " + datas.Count);
                    dataCache.InitDataUnits(datas);
                }
                initCdlStatus = DataInitStatus.Initialized;
                fw = null;
            }
            else if (!string.IsNullOrEmpty(cdlFilePath) && cdlLoadingStatus == DownloadStatus.Failed
                && initCdlStatus == DataInitStatus.NotStart)
            {
                //initCdlStatus = DataInitStatus.Failed;
            }

            if (AppContext.IsLoading)
            {
                AppContext.IsLoadInitProviderFile = true;
            }
        }
        //DateTime startTime;
        public void Init()
        {
            lock (this)
            {
                Console.WriteLine(" Start  Now   ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;  " + DateTime.Now.ToLongTimeString());
                Initialized = false;
                Initializing = false;
                initCdlStatus = DataInitStatus.NotStart;
                initRtdStatus = DataInitStatus.NotStart;
                cdlLoadingStatus = DownloadStatus.NotStart;
                rtdLoadingStatus = DownloadStatus.NotStart;

                //currentTInterval = AppSetting.INTEVALS[0];
                isUpdateCandle = false;
                isAddCandle = false;
                dataCache.InitLocalData();

                    handler = new ProviderHandler( this);
                    ProviderService.RegisterHandler(handler);
                    ProviderService.KickOff();
            }
            InitStart();
        }