// Метод, вызывающий событие protected virtual void tmrTimer_Elapsed(object sender, EventArgs e) { //wh.WaitOne(); double number = 0.0; string label = ""; // Формируем данные для события if (_parameters.EndType == AntAlgorithmEndType.Iteration) { //Подсчитываем процент прогресса number = curTime * 100 / maxTime; //только целые значения label = "%"; } if (_parameters.EndType == AntAlgorithmEndType.Convergence) { // Количество итераций number = iteration; label = " итераций"; } AntAlgChangesEventArgs eee = new AntAlgChangesEventArgs(number, false, label); OnProgressChanged(eee); // да, еее - это по-мудацки! //wh.Set(); }
private void ProgressChange(object sender, AntAlgLogic.AntAlgChangesEventArgs e) { //пересылка сообщения if (eventProgressChanged != null) //проверяем наличие подписчиков { eventProgressChanged(this, (int)e.Percent, e.Label); } }
// Уведомляет подписанные на событие объекты protected virtual void OnProgressChanged(AntAlgChangesEventArgs e) { EventHandler <AntAlgChangesEventArgs> tmp = eventProgressChanged; if (tmp != null) { tmp(this, e); } }