コード例 #1
0
        //public static void process(object sender, System.Timers.ElapsedEventArgs e)
        ////{
        //    string[] products = { "AUDUSD"
        //                            , "AUDJPY", "EURJPY", "EURUSD", "GBPUSD",
        //                            "GBPJPY", "NZDUSD", "USDJPY",
        //                            "USDCAD",  "USDCHF", "GOLD",  "SILVER"
        //                        };


        //    //while (true)
        //    //{
        //        if (index >= products.Length)
        //            index = 0;

        //        if (c > 11)
        //            c = 0;
        //        double d = 0;

        //        Random rand = new Random();
        //        double r= (double)rand.Next(1, 9);
        //        if (c % 2 == 0)
        //        {
        //             d = (1.2012 +( (double)r/1000)- (double)c / 100000);
        //        }
        //        else
        //        {
        //            d = (1.2012 - ((double)r / 1000) + (double)c / 100000);
        //        }
        //        Symbol symbol = (Symbol)Enum.Parse(typeof(Symbol), products[index].Trim());
        //        DateTime dateTime = time.Add(TimeSpan.FromMinutes(t));
        //        //DateTime dateTime = time.Add(TimeSpan.FromSeconds(t));
        //        RealTimeData realTimeData = new RealTimeData();
        //        realTimeData.symbol = symbol;
        //        realTimeData.datas = new double[] { d };
        //        realTimeData.dateTime = dateTime;

        //        if (DataService.symbolDatas.ContainsKey(symbol))
        //        {
        //            //List<RealTimeData> list = FXDataSource.RetrieveDataCache(symbol);
        //            //list.Add(realTimeData);

        //            if (null != DataService.providerList[symbol].DataCache)
        //            {
        //                if (!DataService.providerList[symbol].DataCache.IsInitialized)
        //                {
        //                    DataService.providerList[symbol].DataCache.StartTime = realTimeData.dateTime;
        //                    DataService.providerList[symbol].DataCache.Init();
        //                }
        //                DataService.providerList[symbol].DataCache.RealTimeDatas.Add(realTimeData);
        //            }
        //            //FXDataSource.WakeUpDataProvider(symbol);
        //            //FXDataSource.UpdateGraphicUI(FXDataSource.sourceHandler, realTimeData);
        //        }
        //       if(AppContext.IsSignalListInitialized)
        //        DataService.UpdateListView(DataService.priceListDelegate, realTimeData);
        //        //ThreadPool.QueueUserWorkItem(new WaitCallback(ProductListUpdate), realTimeData);
        //        //Thread.Sleep(1000);
        //        t++;
        //        index++;
        //        c++;
        //}



        public static void ReceiveMsg(string realTimeMsg)
        {
            string rmsg = (string)realTimeMsg;

            List <RealTimeData> rtdList = AppUtil.ParseRtdMsg((string)realTimeMsg);

            if (rtdList.Count > 0)
            {
                foreach (RealTimeData realTimeData in rtdList)
                {
                    lock (DataService.symbolDatas)
                    {
                        if (DataService.symbolDatas.ContainsKey(realTimeData.symbol))
                        {
                            DataService.GetProviderBySymbol(realTimeData.symbol).DataCache.RealTimeDatas.Add(realTimeData);
                        }
                        if (AppContext.IsPriceListInitialized)
                        {
                            DataService.UpdateListView(DataService.priceListDelegate, realTimeData);
                        }
                    }
                }
            }
        }