private void OnRspMarketInfo(IntPtr pQuotApi, IntPtr pBuffer, ref MarketInfo pMarketInfo, int bLast)
        {
            IntPtr ptrHead = (IntPtr)((int)pBuffer + Marshal.SizeOf(typeof(MarketInfo)));

            for (int i = 0; i < pMarketInfo.stocknum; ++i)
            {
                IntPtr      ptr = (IntPtr)((int)ptrHead + Marshal.SizeOf(typeof(StockInfo)) * i);
                StockInfo   si  = (StockInfo)Marshal.PtrToStructure(ptr, typeof(StockInfo));
                StockInfoEx sie = new StockInfoEx()
                {
                    stockinfo = si,
                    market    = pMarketInfo.Market,
                };
                _dictInstruments[si.szCode] = sie;
            }
            ehlog.Info("接收到 {0} 信息包,{1}条", pMarketInfo.Market, pMarketInfo.stocknum);
        }
 private static int SortStockInfoEx(StockInfoEx a1, StockInfoEx a2)
 {
     return a1.stockinfo.szCode.CompareTo(a2.stockinfo.szCode);
 }
 private static int SortStockInfoEx(StockInfoEx a1, StockInfoEx a2)
 {
     return(a1.stockinfo.szCode.CompareTo(a2.stockinfo.szCode));
 }
 private void OnRspMarketInfo(IntPtr pQuotApi, IntPtr pBuffer, ref MarketInfo pMarketInfo, int bLast)
 {
     IntPtr ptrHead = (IntPtr)(pBuffer + Marshal.SizeOf(typeof(MarketInfo)));
     for (int i = 0; i < pMarketInfo.stocknum; ++i)
     {
         IntPtr ptr = (IntPtr)(ptrHead + Marshal.SizeOf(typeof(StockInfo)) * i);
         StockInfo si = (StockInfo)Marshal.PtrToStructure(ptr, typeof(StockInfo));
         StockInfoEx sie = new StockInfoEx()
         {
             stockinfo = si,
             market = pMarketInfo.Market,
         };
         _dictInstruments[si.szCode] = sie;
     }
     ehlog.Info("接收到 {0} 信息包,{1}条",pMarketInfo.Market,pMarketInfo.stocknum);
 }