/// <summary> /// 释放对象 /// </summary> public void FreeObject() { try { if (thread != null) { thread.Abort(); thread = null; } if (manageMarket != null) { manageMarket.ForFreeConnectMarket(); manageMarket = null; } if (manageTrade != null) { //manageTrade.ForLogout(password, ""); manageTrade.ForFreeClient(); manageTrade = null; } } catch (Exception ex) { PrintLine("释放连接异常:" + ex.Message); JHLog.forTradeLog("释放连接异常:" + ex.ToString()); } }
public static void StrategyThread(Object _obj) { Strategy stag = (Strategy)_obj; if (stag.printMsg != null) { stag.printMsg.Print("启动监控线程 成功!"); } Thread.Sleep(3000); for (; ;) { try { lock (stag) { stag.OnTimer(); } Thread.Sleep(2); } catch (JHTradeException ex) { JHLog.forTradeLog(ex.ToString()); if (stag.printMsg != null) { stag.printMsg.Print("监控线程执行异常!message:" + ex.Message); stag.printMsg.Print("重新启动监控线程 . . ."); } stag.thread = new Thread(new ParameterizedThreadStart(StrategyThread)); stag.thread.Start(stag); break; }catch (JHMarketException JM) { JHLog.forTradeLog(JM.ToString()); if (stag.printMsg != null) { stag.printMsg.Print("监控线程执行异常!message:" + JM.Message); stag.printMsg.Print("重新启动监控线程 . . ."); } stag.thread = new Thread(new ParameterizedThreadStart(StrategyThread)); stag.thread.Start(stag); break; } catch (Exception ex) { JHLog.forTradeLog(ex.ToString()); stag.PrintLine("异常停止!" + ex.Message); break; } } }
public void OnExceptionMessage(EnumStateFlag sf, string _exMsg) { //写入日志 if (sf == EnumStateFlag.行情请求 || sf == EnumStateFlag.行情回报) { JHLog.forMarketLog(_exMsg); } else if (sf == EnumStateFlag.交易请求 || sf == EnumStateFlag.交易回报) { JHLog.forTradeLog(_exMsg); } //打印到控制台 if (printMsg != null) { printMsg.Print(_exMsg); } }
public void OnJHTradeForLogin(Trade_Head msgHead) { if (msgHead.OperTime == "") { if (stateNotify != null) { stateNotify.OnNotify(this, NotifyCode.TRADE_TIME_ERROR); } return; } string msg = ""; bool brt = false; if (int.Parse(msgHead.ReturnCode) == 0) { msg = "登陆交易服务器成功! code:" + msgHead.ReturnCode + ",desc:" + msgHead.ReturnDesc; } else { brt = true; msg = "登陆交易服务器异常! code:" + msgHead.ReturnCode + ",desc:" + msgHead.ReturnDesc; JHLog.forTradeLog(msg); } PrintLine(msg); if (brt) { return; } DateTime servTime; //计算时间差 servTime = Convert.ToDateTime(msgHead.OperTime); //保存服务器推送时间 lastTradeHeartTime = GetTimestamp(servTime); //保持本地与服务器时间差 time_trade_dif = lastTradeHeartTime - GetTimestamp(); //通知准备工作已经完成 OnInitInstance(); }
/// <summary> /// 获取本机MAC地址 /// </summary> /// <returns>本机MAC地址</returns> public static string GetMacAddress() { try { string mac = ""; ManagementClass mc; mc = new ManagementClass("Win32_NetworkAdapterConfiguration"); ManagementObjectCollection moc = mc.GetInstances(); foreach (ManagementObject mo in moc) { if (mo["IPEnabled"].ToString() == "True") { mac = mo["MacAddress"].ToString(); } } return(mac); } catch { JHLog.forTradeLog("获取本机MAC失败!"); return(""); } }