Лучший отвечающий
обходит события

Вопрос
-
Всем привет. Работаю с EmguCV, там программа проскакивает события. И сразу идет на следуюшую строку, и получается ощибка
Вот первая часть, откуда вызывается события:
private void btnStart_Click(object sender, EventArgs e) { #region if capture is not created, create it now if (capture == null) { try { capture = new Capture(); } catch (NullReferenceException excpt) { MessageBox.Show(excpt.Message); } } #endregion if (capture != null) { if (btnStart.Text == "Pause") { //if camera is getting frames then pause the capture and set button Text to // "Resume" for resuming capture btnStart.Text = "Resume"; // Application.Idle -= ProcessFrame; DetectFace(); } else { //if camera is NOT getting frames then start the capture and set button // Text to "Pause" for pausing capture btnStart.Text = "Pause"; Application.Idle += ProcessFrame; DetectFace(); } } }
тут должен вызватся ProcessFrame, но после него сразу переходит на другую строку. Делал во всем коде точки останова, но именно сюда не попадает
void ProcessFrame(object sender, EventArgs arg) { ImageFrame = capture.QueryFrame(); CamImageBox.Image = ImageFrame; }
21 ноября 2012 г. 14:09
Ответы
-
Тогда нужно заменить строку
Application.Idle += ProcessFrame;
на строку
ProcessFrame(null, EventArgs.Empty);
Да и вообще, метод ProcessFrame можно сделать без параметров.
- Помечено в качестве ответа Abolmasov Dmitry 30 ноября 2012 г. 8:01
21 ноября 2012 г. 17:34
Все ответы
-
Судя по этому коду, метод ProcessFrame будет вызываться только в том случае, когда приложение бездействует (Application.Idle). Возможно, у вас в приложении как раз в это время идёт какая-то работа, поэтому событие Idle не вызывается.21 ноября 2012 г. 17:25
-
Судя по этому коду, метод ProcessFrame будет вызываться только в том случае, когда приложение бездействует (Application.Idle). Возможно, у вас в приложении как раз в это время идёт какая-то работа, поэтому событие Idle не вызывается.
в приложение в это время никакая работа не идет. Я его запускаю и все.
А как можна принудительно вызвать это события?
21 ноября 2012 г. 17:30 -
Тогда нужно заменить строку
Application.Idle += ProcessFrame;
на строку
ProcessFrame(null, EventArgs.Empty);
Да и вообще, метод ProcessFrame можно сделать без параметров.
- Помечено в качестве ответа Abolmasov Dmitry 30 ноября 2012 г. 8:01
21 ноября 2012 г. 17:34 -
Тогда нужно заменить строку
Application.Idle += ProcessFrame;
на строку
ProcessFrame(null, EventArgs.Empty);
Да и вообще, метод ProcessFrame можно сделать без параметров.
21 ноября 2012 г. 17:36 -
Просто убрать эту строку.21 ноября 2012 г. 17:55