private void CloseApp() { if (fxpa != null) { FXPA.Close(); Application.ExitThread(); } }
public override void Receive(object msg) { Console.WriteLine(" TimeCheckHandler Receive ~~~~~~~~~~~ " + msg); string[] msgs = (string[])msg; Protocol protocol = AppUtil.ParseProtocol(msgs[1]); int paramAmount = AppUtil.StringToInt(msgs[2]); if (protocol != Protocol.UNKNOWN) { try { switch (protocol) { case Protocol.S0002_1: string strServerTime = msgs[3]; DateTime serverTime; serverTime = DateTime.Parse(strServerTime); if (FXPA != null && !FXPA.IsDisposed) { if (!msgs.Contains(NULL)) { if (serverTime.CompareTo(AppSetting.END_TIME) > 0) { errCode = -1; MethodInvoker mi = new MethodInvoker(ShowErrorMsg); FXPA.BeginInvoke(mi); mi = new MethodInvoker(CloseApp); FXPA.BeginInvoke(mi); } } } int DAY = Convert.ToInt16(serverTime.Day); AppContext.CURRENT_TIME = serverTime; DateTime startTimeOfNormalDay = AppUtil.GetStartTimeOfNormalDay(AppContext.CURRENT_TIME); if (DAY > LogUtil.DAY && serverTime.CompareTo(startTimeOfNormalDay) > 0) { MethodInvoker mi = new MethodInvoker(TimeLabelUpdate); AppContext.TradeExpertControl.BeginInvoke(mi); LogUtil.DAY = DAY; LogUtil.Close(); LogUtil.init(true, true, true, true); } else if (DAY > AppContext.DAY) { AppContext.DAY = DAY; DateTime startTimeOfWeek = AppUtil.GetStartTimeOfWeek(AppContext.CURRENT_TIME); DateTime startTimeOfBizDay = AppUtil.GetStartTimeOfBizToday(AppContext.CURRENT_TIME); List <Signal> obsoletes = new List <Signal>(); if (AppSetting.STATUS == AppSetting.TEST_ACCOUNT && serverTime.CompareTo(startTimeOfWeek) > 0) { if (AppContext.SignalDatas.Count > 0) { lock (AppConst.SignalDatasLocker) { foreach (Signal signal in AppContext.SignalDatas) { if (signal.ProfitPrice != 0 && signal.ProfitTime.CompareTo(startTimeOfWeek) < 0) { obsoletes.Add(signal); } } foreach (Signal signal in obsoletes) { AppContext.SignalDatas.Remove(signal); } } } } else if (serverTime.CompareTo(startTimeOfBizDay) > 0) { if (AppContext.SignalDatas.Count > 0) { lock (AppConst.SignalDatasLocker) { foreach (Signal signal in AppContext.SignalDatas) { if (signal.ProfitPrice != 0 && signal.ProfitTime.CompareTo(startTimeOfBizDay) < 0) { obsoletes.Add(signal); } } foreach (Signal signal in obsoletes) { AppContext.SignalDatas.Remove(signal); } } } } if (obsoletes != null && obsoletes.Count > 0) { MethodInvoker mi = new MethodInvoker(SignalListUpdate); signalListView.BeginInvoke(mi); mi = new MethodInvoker(StatListUpdate); AppContext.StatListView.BeginInvoke(mi); mi = new MethodInvoker(PriceListUpdate); priceListView.BeginInvoke(mi); } obsoletes.Clear(); List <PublishInfo> obsoletes2 = new List <PublishInfo>(); if (AppContext.PublishInfos.Count > 0) { lock (AppContext.PublishInfos) { foreach (PublishInfo info in AppContext.PublishInfos) { if (AppContext.CURRENT_TIME.Subtract(info.DateTime) > AppConst.AppTimeSpans[Interval.DAY1]) { obsoletes2.Add(info); } } foreach (PublishInfo info in obsoletes2) { AppContext.PublishInfos.Remove(info); } if (obsoletes2 != null && obsoletes2.Count > 0) { MethodInvoker mi = new MethodInvoker(InfoListUpdate); infoListView.BeginInvoke(mi); } } } obsoletes2.Clear(); } break; } } catch (Exception e) { LogUtil.Info(" TimeCheckHandler Receive Exception~~~~~~~~~~~ " + e.StackTrace); } } }