//Запуск потоков public void StartThreads() { StartLog("Запуск потоков").Run(() => { ReadThread.StartProcess(); UserThread.StartProcess(); ArchiveThread.StartProcess(); }); }
//Останов потоков public void StopThreads() { StartLog("Остановка потоков").Run(() => { ReadThread.StopProcess(); UserThread.StartProcess(); ArchiveThread.StartProcess(); }); }
//Открытие потоков public void OpenThreads(double periodSeconds, double lateSeconds) { StartLog("Открытие потоков").Run(() => { ReadThread = OpenRealTimeThread(1, "Source", periodSeconds, lateSeconds); var aproxy = new QueuedProxyConnect("ArchiveProxy"); ReturnConnect = new ProxyConnect("UserProxy"); ReadThread.Proxies.Add(aproxy.Code, aproxy); ReadThread.Proxies.Add(ReturnConnect.Code, ReturnConnect); foreach (var s in SchemeSources.Values) { var con = (IReadingConnect)ReadThread.AddConnect(s.Code); aproxy.InConnects.Add(s.Code, con); ReturnConnect.InConnects.Add(s.Code, con); } ArchiveThread = OpenProxyThread(2, "Archive", aproxy); ArchiveThread.AddConnect("Archive"); ArchiveThread.Proxies.Add("ArchiveProxy", aproxy); UserThread = OpenRealTimeThread(3, "Return", periodSeconds); UserThread.Proxies.Add(ReturnConnect.Code, ReturnConnect); }); }