private void LaunchManager(DashboardManager dbm)
        {
            //############ Data Manager ###################
            Task DataManagerFleet = Task.Run(() =>
            {
                Parallel.ForEach(symbolList, new ParallelOptions {
                    MaxDegreeOfParallelism = Control.maxNumThreads
                }, (symbol) =>
                {
                    DataManager dm = new DataManager(DashboardMgr: dbm,
                                                     _symbol: symbol,
                                                     _right: right,
                                                     _IncludeOppositeWing: false,
                                                     _clientId: clienIDs[symbol],
                                                     _ReadInContract: false,
                                                     _secType: "STK");
                    dm.CreateTable();
                    dm.FillInData();
                    DataManagerQueue.Enqueue(dm);
                    dm.disconnect();
                });
            });

            Task IntegrationWaiter = Task.Run(() => {
                while (ProcessedCount < symbolList.Length)
                {
                    DataManager iDm;
                    if (DataManagerQueue.TryDequeue(out iDm))
                    {
                        try
                        {
                            Integration(iDm);
                        }
                        catch (Exception)
                        {
                            using (StreamWriter sw = new StreamWriter(RErrorLog, append: true))
                            {
                                sw.WriteLine(iDm.Symbol);
                                Console.WriteLine("Error in {0}", iDm.Symbol);
                            }
                        }
                        Console.WriteLine("{0} Done", iDm.Symbol);
                        dbm.ChangeCellColor(Array.IndexOf(symbolList, iDm.Symbol), Color.Green);
                        ProcessedCount++;
                    }
                }
            });

            Task.WaitAll(DataManagerFleet, IntegrationWaiter);
        }
Beispiel #2
0
 private void UpdateDashboard()
 {
     dbm.ChangeCellColor(clientID, Color.Orange);
 }