2012-05-18 2 views
-2

Я пишу программу, которая проходит через мой метод, возможно, в 50 раз в секунду или больше (необходимо)Альтернатива ожидания в методе с временем циклом

Метод должен следовать этой модели:

  • Создать булево значение.
  • Дождитесь изменения значения.
  • Продолжить в методе.

Просто, я знаю, но я не хочу использовать while цикл, поскольку он занимает 3% или около процессора больше, чем следовало, и я думаю, я должен это нужно ждать больше для значение, которое может меняться, что может занять все мои циклы процессора, чего я не хочу. Кроме того, создание нового потока за каждый раз, когда я выполняю метод со скоростью 50 раз в секунду, является ужасной идеей.

Так что же мне делать? Если мне нужно предоставить любую другую информацию, не стесняйтесь спрашивать.

+0

Как будет изменяться логическое значение? Вы контролируете изменение кода? – Ryan

+0

Не используйте логическое значение. Немного исследуйте, как использовать ['EventWaitHandle'] (http://msdn.microsoft.com/en-us/library/system.threading.eventwaithandle.aspx) (или, может быть, кто-то опубликует вам пример). – Douglas

+0

Значение передается другому методу с помощью ref, и когда это делается, он возвращает true @minitech И douglas, я рассмотрю его. – cloud

ответ

0

Может ли ManualResetEvent использовать? Не уверен, как это будет работать с вашей системой, но это может быть что-то, что нужно изучить.

0

В зависимости от характера метода вы можете просто сделать остальную часть метода обработчиком события и местом, которое изменит его значение, а затем сначала событие типа ValueChanged.

Смежные вопросы