c таймер в консольном приложении

Как добавить таймер в C# консольное приложение

только это-как вы добавляете таймер в консольное приложение c#? Было бы здорово, если бы вы могли предоставить некоторые примеры кода.

7 ответов

это очень хорошо, однако для имитации некоторого времени нам нужно запустить команду, которая занимает некоторое время, и это очень ясно во втором примере.

однако стиль использования цикла for для выполнения некоторых функций навсегда занимает много ресурсов устройства, и вместо этого мы можем использовать сборщик мусора, чтобы сделать что-то подобное.

мы можем видеть эту модификацию в коде из той же книги CLR через C# Third Ed.

использовать систему.Нарезка резьбы.класс Timer.

вот код для создания простого секундного таймера:

EDIT: никогда не рекомендуется добавлять жесткие спиновые петли в код, поскольку они потребляют циклы процессора без усиления. В этом случае этот цикл был добавлен только для того, чтобы остановить закрытие приложения, позволяя наблюдать за действиями потока. Но для корректности и уменьшения использования ЦП был добавлен простой вызов сна эта петля.

давайте немного весело!—2—>

или с помощью Rx, короткий и сладкий:

вы также можете использовать свои собственные механизмы синхронизации, если вы хотите немного больше контроля, но меньше точности и больше кода/сложности, но я все равно рекомендую таймер. Используйте это, если вам нужно контролировать фактический поток синхронизации:

будет вашим потоком синхронизации (измените это, чтобы остановить, когда reqiuired, и в любой промежуток времени вы хотите).

и использовать / начать вы можете сделать:

обратный вызов-это ваш void без параметров метод, который вы хотите вызвать в каждом интервале. Например:

вы также можете создать свой собственный (если недовольны доступные варианты).

создание собственного Timer реализация довольно простой вещи.

это пример для приложения, которому нужен доступ к COM-объекту в том же потоке, что и остальная часть моей кодовой базы.

вы можете добавить события следующим образом:

чтобы убедиться, что таймер работает, вы должны создать бесконечный цикл следующим образом:

Источник

Timer Класс

Определение

Некоторые сведения относятся к предварительной версии продукта, в которую до выпуска могут быть внесены существенные изменения. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.

Создает событие после заданного интервала с возможностью создания повторяющихся событий.

Примеры

В следующем примере создается экземпляр System.Timers.Timer объекта, который запускает Timer.Elapsed событие каждые две секунды (2 000 миллисекунд), настраивает обработчик событий для события и запускает таймер. Обработчик событий отображает значение ElapsedEventArgs.SignalTime свойства при каждом его возникновении.

Комментарии

TimerКомпонент является серверным таймером, который вызывает Elapsed событие в приложении после Interval истечения числа миллисекунд в свойстве. Можно настроить Timer объект для вызова события только один раз или многократно с помощью AutoReset Свойства. Как правило, Timer объект объявляется на уровне класса, чтобы он оставался в области, пока он необходим. Затем можно обработать Elapsed событие, чтобы обеспечить нормальную обработку. Например, предположим, что имеется важный сервер, который должен храниться 24 часа в день, 7 дней в неделю. Можно создать службу, которая использует Timer объект для периодической проверки сервера и обеспечения работоспособности системы. Если система не отвечает, служба может попытаться перезапустить сервер или уведомить администратора.

Серверный System.Timers.Timer класс предназначен для использования с рабочими потоками в многопоточной среде. серверные таймеры могут перемещаться между потоками для решения возникшего Elapsed события, что приводит к более высокой точности, чем Windows таймеров при возникновении события вовремя.

System.Timers.TimerКомпонент создает Elapsed событие на основе значения (в миллисекундах) Interval Свойства. Это событие можно обработать для выполнения необходимой обработки. Например, предположим, что у вас есть интерактивное приложение для продаж, которое постоянно отправляет заказы на продажу в базу данных. Служба, которая компилирует инструкции для доставки, работает с пакетом заказов, вместо того чтобы обрабатывать каждый заказ по отдельности. TimerДля запуска пакетной обработки каждые 30 минут можно использовать.

Класс System. Timers. Timer имеет то же разрешение, что и системные часы. Это означает, что Elapsed событие будет срабатывать через интервал, определенный разрешением системных часов, если Interval свойство меньше, чем разрешение системных часов. Дополнительные сведения см. в описании свойства Interval.

Если System.Timers.Timer класс используется с элементом пользовательского интерфейса, таким как форма или элемент управления, без помещения таймера в этот элемент пользовательского интерфейса, назначьте форму или элемент управления, содержащий Timer SynchronizingObject свойство, так, чтобы событие было упаковано в поток пользовательского интерфейса.

Список значений свойств по умолчанию для экземпляра Timer см. в разделе Timer конструктор.

Конструкторы

Инициализирует новый экземпляр класса Timer и задает всем свойствам начальные значения.

Инициализирует новый экземпляр класса Timer и задает свойству Interval указанное значение в миллисекундах.

Свойства

Возвращает или задает логическое значение, определяющее, должен ли объект Timer вызывать событие Elapsed один раз ( false ) или неоднократно ( true ).

Возвращает значение, показывающее, может ли компонент вызывать событие.

Возвращает объект IContainer, который содержит коллекцию Component.

Возвращает значение, указывающее, находится ли данный компонент Component в режиме конструктора в настоящее время.

Возвращает или задает значение, определяющее, должен ли объект Timer вызывать событие Elapsed.

Возвращает список обработчиков событий, которые прикреплены к этому объекту Component.

Возвращает или задает интервал в миллисекундах, по истечении которого возникает событие Elapsed.

Возвращает или задает сайт, который привязывает Timer к его контейнеру в режиме конструктора.

Получает или задает объект, используемый для маршалирования вызовов обработчика событий, осуществленных после истечения интервала времени.

Методы

Начинает во время выполнения инициализацию класса Timer, используемого в форме или другим компонентом.

Освобождает ресурсы, используемые объектом Timer.

Создает объект, который содержит всю необходимую информацию для создания прокси-сервера, используемого для взаимодействия с удаленным объектом.

Освобождает все ресурсы, занятые модулем Component.

Освобождает все ресурсы, используемые текущим объектом Timer.

Заканчивает во время выполнения инициализацию класса Timer, используемого в форме или другим компонентом.

Определяет, равен ли указанный объект текущему объекту.

Служит хэш-функцией по умолчанию.

Извлекает объект обслуживания во время существования, который управляет политикой времени существования данного экземпляра.

Возвращает объект, представляющий службу, предоставляемую классом Component или классом Container.

Возвращает объект Type для текущего экземпляра.

Получает объект службы времени существования для управления политикой времени существования для этого экземпляра.

Создает неполную копию текущего объекта Object.

Создает неполную копию текущего объекта MarshalByRefObject.

Возвращает объект String, содержащий имя Component, если оно есть. Этот метод не следует переопределять.

События

Возникает при удалении компонента путем вызова метода Dispose().

Происходит по истечении интервала времени.

Применяется к

Потокобезопасность

Все открытые static члены этого типа являются потокобезопасными. Потокобезопасная работа с членами экземпляров типа не гарантируется.

Источник

Практическое руководство. Выполнение операций с заданной периодичностью с помощью компонента Timer в Windows Forms

Иногда может потребоваться создать процедуру, которая выполняется через определенные интервалы времени до окончания цикла или запускается по истечении установленного интервала. Создание такой процедуры возможно благодаря компоненту Timer.

Этот компонент предназначен для работы в среде Windows Forms. Если вам требуется таймер, подходящий для серверной среды, см. раздел Общие сведения о серверных таймерах.

Существуют некоторые ограничения при использовании компонента Timer. дополнительные сведения см. в разделе ограничения свойства Interval компонента таймера Windows Forms.

Выполнение процедуры через заданные интервалы времени с помощью компонента Timer

Добавьте элемент Timer в форму. В следующем разделе «Пример» показано, как сделать это программным путем. Visual Studio также поддерживает добавление компонентов в форму. см. также руководство. добавление элементов управления без пользовательского интерфейса в Windows Forms.

Задайте значение свойства Interval (в миллисекундах) для таймера. Это свойство определяет, сколько времени пройдет до момента повторного запуска процедуры.

Чем чаще происходит событие таймера, тем выше загрузка процессора при ответе на событие. Это может снизить общую производительность. Не устанавливайте значение интервала меньше, чем необходимо.

Напишите соответствующий код в обработчике событий Tick. Код, написанный в этом событии, будет выполняться с интервалом, указанным в свойстве Interval.

Пример

Пример

Источник

Понравилась статья? Поделить с друзьями:
Добавить комментарий
  • Как сделать успешный бизнес на ритуальных услугах
  • Выездной кейтеринг в России
  • Риски бизнеса: без чего не обойтись на пути к успеху
  • c ссылка на главную форму
  • c расположение формы на экране