public void DeInitializeKlaster1()//Функция производит отписку от всех действия для работы { try { ConnnectURANDelegate -= ConnectAll; //подписка на конект НастройкаURANDelegate -= Настройка; //подписка на запуск(загрузка регистров начало, создание файла и тд ) НастройкаURANOldDelegate -= НастройкаOld; ReadDataURANDelegate -= ReadData; NewFileURANDelegate -= NewFileData; StopURANDelegate -= Stop; DiscConnnectURANDelegate -= DicsConectAll; ПускURANDelegate -= Пуск; TempURANDelegate -= TempPacetov; TestRanSetUpDelegate -= TestRanПодготовка; TestRanStartDelegate -= TriggerStartProgram; TestRanTheEndDelegate -= TestRanTheEnd; ЗаписьВремяРегистрDelegate -= FirsTime; СтартЧасовDelegate -= ПускСтартТайм; ЗаписьвФайлDelegate -= WriteInFileIzOcheredi; СтопТриггерDelegate -= TriggerStop; ЗаписьвФайлБДDelegate -= WriteInFileIzOcherediBD; while (!OcherediNaZapicBD.IsEmpty) { OcherediNaZapicBD.TryDequeue(out ClassZapicBD classZapicBD); } while (!OcherediNaZapic.IsEmpty) { DataYu dataYu = new DataYu(); OcherediNaZapic.TryDequeue(out dataYu); } //OcherediNaZapic. //OcherediNaZapicBD if (clientBAAK12T.Connected) { clientBAAK12T.Close(); ns.Close(); ns = null; } if (clientBAAK12TData.Connected) { clientBAAK12TData.Close(); nsData.Close(); nsData = null; } CloseFile(); ДеИнсталяцияDelegate -= DeInitializeKlaster1; } catch (Exception) { // MessageBox.Show("Ошибка"); } }
public void СохраняемДанныеНужные() { if (FlagSaveBin) { while (true) { try { DataYu clasdata = new DataYu(); OcherediNaZapic.TryDequeue(out clasdata); if (clasdata != null && clasdata.ListData != null) { int f = clasdata.ListData.Count; byte[] d = new byte[f]; int x = 0; foreach (Byte b in clasdata.ListData) { d[x] = b; x++; } data_w.Write(d); clasdata.ListData.Clear(); Array.Clear(d, 0, f); } else { break; } } catch (InvalidOperationException) { break; } catch (NullReferenceException) { break; } } } }
/// <summary> /// записываем данные из очереди в файл и в бд /// </summary> public virtual void WriteInFileIzOcheredi()//работа с данными из очереди { try { dataYu = new DataYu(); bool?ed = OcherediNaZapic?.TryDequeue(out dataYu); if (ed == true) { if (dataYu.ListData != null) { byte[] d = new byte[dataYu.ListData.Count]; int x = 0; foreach (Byte b in dataYu.ListData) { d[x] = b; x++; } if (FlagSaveBin) { if (data_w != null) { data_w.Write(d); } } if (UserSetting.FlagOtbor) { int[] coutN = new int[12]; Double[] sigm = new double[12]; if (BAAKTAIL) { Obrabotka(dataYu.ListData, out int[] Ampl, out string time1, out coutN, out double[] NL, out sigm, dataYu.tipDataTest, out bool bad);//парсинг данных КолПакетовN += coutN.Sum(); Dispatcher.CurrentDispatcher.Invoke(DispatcherPriority.Render, new Action(() => { MyGrafic.AddTecPointN(Nkl, Convert.ToInt32(КолПакетовN) - ПакетовN); })); if (!dataYu.tipDataTest) { OcherediNaZapicBD.Enqueue(new ClassZapicBD() { tipDataTest = dataYu.tipDataTest, tipDataSob = true, nameFileBD = NameFileClose, nameBAAKBD = NameBAAK12, timeBD = time1, nameRanBD = BAAK12T.NameRan, AmpBD = Ampl, nameklasterBD = NamKl, NnutBD = coutN, NlBD = NL, sigBDnew = sigm, bad = bad }); } } } КолПакетовОчер++; DataBAAKList1 = null; d = null; } } } catch (InvalidOperationException) { } catch (NullReferenceException ee) { Debug.WriteLine("Error 656"); } catch (Exception e) { Brushes = System.Windows.Media.Brushes.Red; CтатусБААК12 = "Ошибка. Отключена " + e; InDe(false); } }