/// <summary> /// 期权行情 /// </summary> /// <param name="m_realData"></param> private void UpdateOptionDataCollection(RealData m_realData) { MainWindow mainWindow = TradeDataClient.GetClientInstance().getMainWindow();//CtpDataServer.GetUserInstance().getMainWindow(); if (mainWindow != null) { mainWindow.updateOptionDataByDisplayRealData(m_realData); foreach (var item in mainWindow.OptionRealDataCollection) { if (item.Code_C == m_realData.CodeInfo.Code || item.Code_P == m_realData.CodeInfo.Code) { //lock (_Locker) //{ // DataContainer.AddRealDataToContainer(m_realData); //} item.UpdateProperties(m_realData); OptionCalculator.Enqueue(item); break; } } } else { Util.Log("Warning!: mainWindow in BackgroundDataServer is NULL! "); } }
/// <summary> /// 期权行情 /// </summary> /// <param name="realDataDict"></param> private void UpdateOptionDataCollection(Dictionary <Contract, RealData> realDataDict) { MainWindow mainWindow = TradeDataClient.GetClientInstance().getMainWindow();//CtpDataServer.GetUserInstance().getMainWindow(); if (mainWindow != null) { foreach (var item in mainWindow.OptionRealDataCollection) { foreach (Contract contract in realDataDict.Keys) { RealData tempData = realDataDict[contract]; mainWindow.updateOptionDataByDisplayRealData(tempData); if (item.Code_C == tempData.CodeInfo.Code || item.Code_P == tempData.CodeInfo.Code) { item.UpdateProperties(tempData); OptionCalculator.Enqueue(item); } } } } else { Util.Log("Warning!: mainWindow in BackgroundDataServer is NULL! "); } }