public IEnumerable <int> CulcPrime(int start, int end) { if (start < 2) { start = 2; } // 2 is the first prime number var prime_numbers = new List <int>(); for (int i = start; i <= end; i++) { Thread.Sleep(10); if (AutoEvent.WaitOne(0)) { AutoEvent.Reset(); return(prime_numbers); } if (cancellationToken.IsCancellationRequested) { cancellationTokenSource = new CancellationTokenSource(); cancellationToken = cancellationTokenSource.Token; return(prime_numbers); } if (isPrime(i)) { prime_numbers.Add(i); } } return(prime_numbers); }
public void HandleDeliveryReport(Message deliveryReport) { if (--NumberOfMessages == 0) { AutoEvent.Set(); } }
/// <summary> /// Add new item to process without increment the itens to process /// use this if you want to reprocess a item /// </summary> /// <param name="fetchNewPage"></param> /// <param name="url"></param> protected void AddThreadPool(Action <Url> fetchNewPage, Url url) { if (CancellationToken.IsCancellationRequested) { return; } ThreadPool.QueueUserWorkItem(new WaitCallback( (x) => { CancellationToken token = (CancellationToken)x !; if (!token.IsCancellationRequested && _config.ShouldSleep) { Thread.Sleep(IdleTime()); } if (token.IsCancellationRequested) { lock (AutoEvent) AutoEvent.Set(); return; } fetchNewPage(url); }), CancellationToken); //all done? signal the main thread if (IsCompleted) { lock (AutoEvent) AutoEvent.Set(); } }
private void Awake() { autoEvt = new AutoEvent(); autoEvt.AddEventListener <TestEvent>(TestEvent.event1, OnEvent1); autoEvt.AddEventListener <TestEvent>(TestEvent.event2, OnEvent2); autoEvt.AddEventListener <TestEvent2>(TestEvent2.event1, OnEvent1_1); autoEvt.AddEventListener <TestEvent2>(TestEvent2.event2, OnEvent1_2); }
public void IncrementItensProcess() { Interlocked.Increment(ref _itensProcessDoneCount); //all done? signal the main thread if (IsCompleted) { lock (AutoEvent) AutoEvent.Set(); } }
private void CreateAutoEvent() { #region AutoEvent var autoEvent = new AutoEvent[150]; autoEvent[0] = new AutoEvent(_opcName, "M_15.gb_AL_Feedback", SystemEventType.Alarm, "Насос M-15 - авария ОС", true); autoEvent[1] = new AutoEvent(_opcName, "M_15.gb_AL_External", SystemEventType.Alarm, "Насос M-15 - внешняя авария", true); autoEvent[2] = new AutoEvent(_opcName, "M_15.gb_AL_DKS", SystemEventType.Alarm, "Насос M-15 - авария ДКС", true); autoEvent[3] = new AutoEvent(_opcName, "M_16.gb_AL_Feedback", SystemEventType.Alarm, "Насос M-16 - авария ОС", true); autoEvent[4] = new AutoEvent(_opcName, "M_16.gb_AL_External", SystemEventType.Alarm, "Насос M-16 - внешняя авария", true); autoEvent[5] = new AutoEvent(_opcName, "M_16.gb_AL_DKS", SystemEventType.Alarm, "Насос M-16 - авария ДКС", true); autoEvent[6] = new AutoEvent(_opcName, "M_17.gb_AL_Feedback", SystemEventType.Alarm, "Насос M-17 - авария ОС", true); autoEvent[7] = new AutoEvent(_opcName, "M_17.gb_AL_External", SystemEventType.Alarm, "Насос M-17 - внешняя авария", true); autoEvent[8] = new AutoEvent(_opcName, "M_17.gb_AL_DKS", SystemEventType.Alarm, "Насос M-17 - авария ДКС", true); autoEvent[9] = new AutoEvent(_opcName, "M_18.gb_AL_Feedback", SystemEventType.Alarm, "Бетоносмеситель M-18 - авария ОС", true); autoEvent[10] = new AutoEvent(_opcName, "M_18.gb_AL_External", SystemEventType.Alarm, "Бетоносмеситель M-18 - внешняя авария", true); autoEvent[11] = new AutoEvent(_opcName, "M_18.gb_AL_Oil", SystemEventType.Alarm, "Бетоносмеситель M-18 - авария системы смазки", true); autoEvent[12] = new AutoEvent(_opcName, "M_9.gb_AL_Feedback", SystemEventType.Alarm, "Конвейер M-9 - авария ОС", true); autoEvent[13] = new AutoEvent(_opcName, "M_9.gb_AL_External", SystemEventType.Alarm, "Конвейер M-9 - внешняя авария", true); autoEvent[14] = new AutoEvent(_opcName, "M_9.gb_AL_DKS", SystemEventType.Alarm, "Конвейер M-9 - авария ДКС", true); autoEvent[15] = new AutoEvent(_opcName, "M_1.gb_AL_Feedback", SystemEventType.Alarm, "Конвейер M-1 - авария ОС", true); autoEvent[16] = new AutoEvent(_opcName, "M_1.gb_AL_External", SystemEventType.Alarm, "Конвейер M-1 - внешняя авария", true); autoEvent[17] = new AutoEvent(_opcName, "M_1.gb_AL_DKS", SystemEventType.Alarm, "Конвейер M-1 - авария ДКС", true); autoEvent[18] = new AutoEvent(_opcName, "M_11.gb_AL_Feedback", SystemEventType.Alarm, "Шнек M-11 - авария ОС", true); autoEvent[19] = new AutoEvent(_opcName, "M_11.gb_AL_External", SystemEventType.Alarm, "Шнек M-11 - внешняя авария", true); autoEvent[20] = new AutoEvent(_opcName, "M_11.gb_AL_DKS", SystemEventType.Alarm, "Шнек M-11 - авария ДКС", true); autoEvent[21] = new AutoEvent(_opcName, "М_12.gb_AL_Feedback", SystemEventType.Alarm, "Шнек M-12 - авария ОС", true); autoEvent[22] = new AutoEvent(_opcName, "М_12.gb_AL_External", SystemEventType.Alarm, "Шнек M-12 - внешняя авария", true); autoEvent[23] = new AutoEvent(_opcName, "М_12.gb_AL_DKS", SystemEventType.Alarm, "Шнек M-12 - авария ДКС", true); autoEvent[24] = new AutoEvent(_opcName, "M_13.gb_AL_Feedback", SystemEventType.Alarm, "Вибратор M-13 - авария ОС", true); autoEvent[25] = new AutoEvent(_opcName, "M_13.gb_AL_External", SystemEventType.Alarm, "Вибратор M-13 - внешняя авария", true); autoEvent[26] = new AutoEvent(_opcName, "M_13.gb_AL_DKS", SystemEventType.Alarm, "Вибратор M-13 - авария ДКС", true); autoEvent[27] = new AutoEvent(_opcName, "M_14.gb_AL_Feedback", SystemEventType.Alarm, "Вибратор M-14 - авария ОС", true); autoEvent[28] = new AutoEvent(_opcName, "M_14.gb_AL_External", SystemEventType.Alarm, "Вибратор M-14 - внешняя авария", true); autoEvent[29] = new AutoEvent(_opcName, "M_14.gb_AL_DKS", SystemEventType.Alarm, "Вибратор M-14 - авария ДКС", true); autoEvent[30] = new AutoEvent(_opcName, "M_10.gb_AL_Feedback", SystemEventType.Alarm, "Вибратор M-10 - авария ОС", true); autoEvent[31] = new AutoEvent(_opcName, "M_10.gb_AL_External", SystemEventType.Alarm, "Вибратор M-10 - внешняя авария", true); autoEvent[32] = new AutoEvent(_opcName, "M_10.gb_AL_DKS", SystemEventType.Alarm, "Вибратор M-10 - авария ДКС", true); autoEvent[33] = new AutoEvent(_opcName, "M_2.gb_AL_Feedback", SystemEventType.Alarm, "Вибратор M-2 - авария ОС", true); autoEvent[34] = new AutoEvent(_opcName, "M_2.gb_AL_External", SystemEventType.Alarm, "Вибратор M-2 - внешняя авария", true); autoEvent[35] = new AutoEvent(_opcName, "M_2.gb_AL_DKS", SystemEventType.Alarm, "Вибратор M-2 - авария ДКС", true); autoEvent[36] = new AutoEvent(_opcName, "M_3.gb_AL_Feedback", SystemEventType.Alarm, "Вибратор M-3 - авария ОС", true); autoEvent[37] = new AutoEvent(_opcName, "M_3.gb_AL_External", SystemEventType.Alarm, "Вибратор M-3 - внешняя авария", true); autoEvent[38] = new AutoEvent(_opcName, "M_3.gb_AL_DKS", SystemEventType.Alarm, "Вибратор M-3 - авария ДКС", true); autoEvent[39] = new AutoEvent(_opcName, "M_4.gb_AL_Feedback", SystemEventType.Alarm, "Вибратор M-4 - авария ОС", true); autoEvent[40] = new AutoEvent(_opcName, "M_4.gb_AL_External", SystemEventType.Alarm, "Вибратор M-4 - внешняя авария", true); autoEvent[41] = new AutoEvent(_opcName, "M_4.gb_AL_DKS", SystemEventType.Alarm, "Вибратор M-4 - авария ДКС", true); autoEvent[42] = new AutoEvent(_opcName, "M_5.gb_AL_Feedback", SystemEventType.Alarm, "Вибратор M-5 - авария ОС", true); autoEvent[43] = new AutoEvent(_opcName, "M_5.gb_AL_External", SystemEventType.Alarm, "Вибратор M-5 - внешняя авария", true); autoEvent[44] = new AutoEvent(_opcName, "M_5.gb_AL_DKS", SystemEventType.Alarm, "Вибратор M-5 - авария ДКС", true); autoEvent[45] = new AutoEvent(_opcName, "M_6.gb_AL_Feedback", SystemEventType.Alarm, "Вибратор M-6 - авария ОС", true); autoEvent[46] = new AutoEvent(_opcName, "M_6.gb_AL_External", SystemEventType.Alarm, "Вибратор M-6 - внешняя авария", true); autoEvent[47] = new AutoEvent(_opcName, "M_6.gb_AL_DKS", SystemEventType.Alarm, "Вибратор M-6 - авария ДКС", true); autoEvent[48] = new AutoEvent(_opcName, "M_7.gb_AL_Feedback", SystemEventType.Alarm, "Вибратор M-7 - авария ОС", true); autoEvent[49] = new AutoEvent(_opcName, "M_7.gb_AL_External", SystemEventType.Alarm, "Вибратор M-7 - внешняя авария", true); autoEvent[50] = new AutoEvent(_opcName, "M_7.gb_AL_DKS", SystemEventType.Alarm, "Вибратор M-7 - авария ДКС", true); autoEvent[51] = new AutoEvent(_opcName, "V_1.gb_AL_Feedback_Open", SystemEventType.Alarm, "Задвижка V-1 - авария ОС-Open", true); autoEvent[52] = new AutoEvent(_opcName, "V_1.gb_AL_Feedback_Close", SystemEventType.Alarm, "Задвижка V-1 - авария ОС-Close", true); autoEvent[53] = new AutoEvent(_opcName, "V_1.gb_AL_BothSensor", SystemEventType.Alarm, "Задвижка V-1 - авария датчиков", true); autoEvent[54] = new AutoEvent(_opcName, "V_1.gb_AL_External", SystemEventType.Alarm, "Задвижка V-1 - внешняя авария", true); autoEvent[55] = new AutoEvent(_opcName, "V_2.gb_AL_Open", SystemEventType.Alarm, "Задвижка V-2 - авария открытия", true); autoEvent[56] = new AutoEvent(_opcName, "V_2.gb_AL_Close", SystemEventType.Alarm, "Задвижка V-2 - авария закрытия", true); autoEvent[57] = new AutoEvent(_opcName, "V_3.gb_AL_Open", SystemEventType.Alarm, "Задвижка V-3 - авария открытия", true); autoEvent[58] = new AutoEvent(_opcName, "V_3.gb_AL_Close", SystemEventType.Alarm, "Задвижка V-3 - авария закрытия", true); autoEvent[59] = new AutoEvent(_opcName, "V_4.gb_AL_Open", SystemEventType.Alarm, "Задвижка V-4 - авария открытия", true); autoEvent[60] = new AutoEvent(_opcName, "V_4.gb_AL_Close", SystemEventType.Alarm, "Задвижка V-4 - авария закрытия", true); autoEvent[61] = new AutoEvent(_opcName, "V_5.gb_AL_Open", SystemEventType.Alarm, "Задвижка V-5 - авария открытия", true); autoEvent[62] = new AutoEvent(_opcName, "V_5.gb_AL_Close", SystemEventType.Alarm, "Задвижка V-5 - авария закрытия", true); autoEvent[63] = new AutoEvent(_opcName, "V_6.gb_AL_Open", SystemEventType.Alarm, "Задвижка V-6 - авария открытия", true); autoEvent[64] = new AutoEvent(_opcName, "V_6.gb_AL_Close", SystemEventType.Alarm, "Задвижка V-6 - авария закрытия", true); autoEvent[65] = new AutoEvent(_opcName, "V_7.gb_AL_Open", SystemEventType.Alarm, "Задвижка V-7 - авария открытия", true); autoEvent[66] = new AutoEvent(_opcName, "V_7.gb_AL_Close", SystemEventType.Alarm, "Задвижка V-7 - авария закрытия", true); autoEvent[67] = new AutoEvent(_opcName, "V_9_1.gb_AL_Open", SystemEventType.Alarm, "Задвижка V-9-1 - авария открытия", true); autoEvent[68] = new AutoEvent(_opcName, "V_9_1.gb_AL_Close", SystemEventType.Alarm, "Задвижка V-9-1 - авария закрытия", true); autoEvent[69] = new AutoEvent(_opcName, "V_9_2.gb_AL_Open", SystemEventType.Alarm, "Задвижка V-9-2 - авария открытия", true); autoEvent[70] = new AutoEvent(_opcName, "V_9_2.gb_AL_Close", SystemEventType.Alarm, "Задвижка V-9-2 - авария закрытия", true); autoEvent[71] = new AutoEvent(_opcName, "V_10_1.gb_AL_Open", SystemEventType.Alarm, "Задвижка V-10-1 - авария открытия", true); autoEvent[72] = new AutoEvent(_opcName, "V_10_1.gb_AL_Close", SystemEventType.Alarm, "Задвижка V-10-1 - авария закрытия", true); autoEvent[73] = new AutoEvent(_opcName, "V_10_2.gb_AL_Open", SystemEventType.Alarm, "Задвижка V-10-2 - авария открытия", true); autoEvent[74] = new AutoEvent(_opcName, "V_10_2.gb_AL_Close", SystemEventType.Alarm, "Задвижка V-10-2 - авария закрытия", true); autoEvent[75] = new AutoEvent(_opcName, "V_11_1.gb_AL_Open", SystemEventType.Alarm, "Задвижка V-11-1 - авария открытия", true); autoEvent[76] = new AutoEvent(_opcName, "V_11_1.gb_AL_Close", SystemEventType.Alarm, "Задвижка V-11-1 - авария закрытия", true); autoEvent[77] = new AutoEvent(_opcName, "V_11_2.gb_AL_Open", SystemEventType.Alarm, "Задвижка V-11-2 - авария открытия", true); autoEvent[78] = new AutoEvent(_opcName, "V_11_2.gb_AL_Close", SystemEventType.Alarm, "Задвижка V-11-2 - авария закрытия", true); autoEvent[79] = new AutoEvent(_opcName, "V_12_1.gb_AL_Open", SystemEventType.Alarm, "Задвижка V-12-1 - авария открытия", true); autoEvent[80] = new AutoEvent(_opcName, "V_12_1.gb_AL_Close", SystemEventType.Alarm, "Задвижка V-12-1 - авария закрытия", true); autoEvent[81] = new AutoEvent(_opcName, "V_12_2.gb_AL_Open", SystemEventType.Alarm, "Задвижка V-12-2 - авария открытия", true); autoEvent[82] = new AutoEvent(_opcName, "V_12_2.gb_AL_Close", SystemEventType.Alarm, "Задвижка V-12-2 - авария закрытия", true); autoEvent[83] = new AutoEvent(_opcName, "M_19.gb_AL_Feedback", SystemEventType.Alarm, "Насос M-19 - Вода - авария ОС", true); autoEvent[84] = new AutoEvent(_opcName, "M_19.gb_AL_External", SystemEventType.Alarm, "Насос M-19 - Вода - внешняя авария", true); autoEvent[85] = new AutoEvent(_opcName, "M_19.gb_AL_DKS", SystemEventType.Alarm, "Насос M-19 - Вода - авария ДКС", true); autoEvent[86] = new AutoEvent(_opcName, "Air_Cement1.gb_AL_Open", SystemEventType.Alarm, "Аэратор силоса цемента 1 - авария открытия", true); autoEvent[87] = new AutoEvent(_opcName, "Air_Cement1.gb_AL_Close", SystemEventType.Alarm, "Аэратор силоса цемента 1 - авария закрытия", true); autoEvent[88] = new AutoEvent(_opcName, "Air_Cement2.gb_AL_Open", SystemEventType.Alarm, "Аэратор силоса цемента 2 - авария открытия", true); autoEvent[89] = new AutoEvent(_opcName, "Air_Cement2.gb_AL_Close", SystemEventType.Alarm, "Аэратор силоса цемента 2 - авария закрытия", true); autoEvent[90] = new AutoEvent(_opcName, "gb_AL_Hydro_Feedback", SystemEventType.Alarm, "Насос гидростанции -не сработал пускатель", true); autoEvent[91] = new AutoEvent(_opcName, "DI_NotStop_BTN_PLC", SystemEventType.Alarm, "Нажата стоповая кнопка в шкафу управления контроллера", false); autoEvent[92] = new AutoEvent(_opcName, "DI_NotStop_BTN_Inert", SystemEventType.Alarm, "Нажата стоповая кнопка в шкафу управления инертными фракциями", false); autoEvent[93] = new AutoEvent(_opcName, "DI_NotStop_BTN_Doz", SystemEventType.Alarm, "Нажата стоповая кнопка в шкафу управления дозированием", false); autoEvent[94] = new AutoEvent(_opcName, "DI_NotStop_BTN_Cem", SystemEventType.Alarm, "Нажата стоповая кнопка в шкафу управления цементом", false); autoEvent[95] = new AutoEvent(_opcName, "DI_NotStop_BTN_Water", SystemEventType.Alarm, "Нажата стоповая кнопка в шкафу управления жидкими компонентами", false); autoEvent[96] = new AutoEvent(_opcName, "DI_NotStop_BTN_BS", SystemEventType.Alarm, "Нажата стоповая кнопка в шкафу управления бетоносмесителем", false); autoEvent[97] = new AutoEvent(_opcName, "cmd_Stop", SystemEventType.Alarm, "Общий стоп", true); autoEvent[98] = new AutoEvent(_opcName, "gb_LinkERR_WeightCement", SystemEventType.Alarm, "Нет связи с весовым индикатором цемента", true); autoEvent[99] = new AutoEvent(_opcName, "gb_LinkERR_WeightWater", SystemEventType.Alarm, "Нет связи с весовым индикатором воды", true); autoEvent[100] = new AutoEvent(_opcName, "gb_LinkERR_WeightInert", SystemEventType.Alarm, "Нет связи с весовым индикатором инертных фракций", true); autoEvent[101] = new AutoEvent(_opcName, "gb_LinkERR_WeightAdditive", SystemEventType.Alarm, "Нет связи с весовым индикатором химических добавок", true); autoEvent[102] = new AutoEvent(_opcName, "M_18.gb_Warning_Oil", SystemEventType.Warning, "Бетоносмеситель M-18 - нет давления в системе смазки", true); autoEvent[103] = new AutoEvent(_opcName, "DI_Gates_M18_Closed", SystemEventType.Warning, "Крышка открыта", false); autoEvent[104] = new AutoEvent(_opcName, "DI_M9_sw_AutomatMode", SystemEventType.Warning, "Конвейер M-9 - автоматический режим", true); autoEvent[105] = new AutoEvent(_opcName, "DI_M9_sw_AutomatMode", SystemEventType.Warning, "Конвейер M-9 - ручной режим", false); autoEvent[106] = new AutoEvent(_opcName, "DI_M18_sw_AutomatMode", SystemEventType.Warning, "Бетоносмеситель M-18 - автоматический режим", true); autoEvent[107] = new AutoEvent(_opcName, "DI_M18_sw_AutomatMode", SystemEventType.Warning, "Бетоносмеситель M-18 - ручной режим", false); autoEvent[108] = new AutoEvent(_opcName, "gb_AL_Hydro_Pressure", SystemEventType.Warning, "Низкое давление в гидравлической магистрали", true); autoEvent[109] = new AutoEvent(_opcName, "gb_ArchiverERROR", SystemEventType.Warning, "Нет связи с программой архивации", true); autoEvent[110] = new AutoEvent(_opcName, "DI_Cement1_LSH", SystemEventType.Warning, "Сработал датчик верхнего уровня цемента в силосе №1", true); autoEvent[111] = new AutoEvent(_opcName, "DI_Cement2_LSH", SystemEventType.Warning, "Сработал датчик верхнего уровня цемента в силосе №2", true); OpcServer.GetInstance().GetSubscription(_opcName).ApplyChanges(); #endregion }
/// <summary> /// Wait until all itens are completed /// </summary> public void StartWait() { AutoEvent.WaitOne(); }