Timer. Start Метод
Некоторые сведения относятся к предварительной версии продукта, в которую до выпуска могут быть внесены существенные изменения. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.
Начинает вызывать событие Elapsed, задавая для свойства Enabled значение true .
public: void Start();
public void Start ();
member this.Start : unit -> unit
Public Sub Start ()
Исключения
Создается Timer с интервалом, равным или превышающим Значение Int32.MaxValue + 1, или устанавливается интервал меньше нуля.
Комментарии
Если Start вызывается и AutoReset имеет значение false , TimerElapsed вызывает событие только один раз, когда интервал истекает в первый раз. Если Start вызывается и AutoReset имеет значение true , Timer вызывает Elapsed событие при первом истечении интервала и продолжает вызывать событие в указанном интервале.
Вы также можете запустить время, задав для параметра значение Enabled true .
Если AutoReset имеет значение false , Start метод должен вызываться для повторного запуска счетчика.
Вызов метода при Start включении таймера не оказывает никакого влияния.
Как перезапустить таймер по кнопке
Есть код таймера всё отлично только не знаю как сделать чтобы по кнопке которую я задам он перезапускался

jQuery(document).ready(function($) < $('.send-new-code-button').click(function(event) < $('.send-new-code').show(); $('.sent-to-number').show(); (function(d)< var display = d.querySelector('#countdown .display') // меняющаяся цифра var timeLeft = parseInt(display.innerHTML) // оставшееся время var timer = setInterval(function()< if (--timeLeft >= 0) < // если таймер всё еще больше нуля display.innerHTML = timeLeft // обновляем цифру >else < d.querySelector('#countdown h1').style.display = 'none' // прячем теекст d.querySelector('.send-new-code').style.display = 'none' // прячем теекст d.querySelector('.sent-to-number').style.display = 'none' // прячем теекст d.querySelector('.send-new-code-button').style.display = 'inline-block' // показываем кнопку clearInterval(timer) // удаляем таймер >>, 1000) // таймер срабатывает каждые 1000 msec (1 sec) >)(document) >); >);
Отслеживать
задан 22 фев 2019 в 9:10
33 3 3 бронзовых знака
Код в виде картинок — это жесть конечно. Вам трудно скопипастить текст кода?
22 фев 2019 в 9:14
«чтобы по кнопке которую я задам» — ??
– user176262
22 фев 2019 в 14:45
да мне надо чтобы при клике с каким то class таймер запускался снова
22 фев 2019 в 17:21
1 ответ 1
Сортировка: Сброс на вариант по умолчанию
Для перезапуска таймера нужно где-либо хранить его идентификатор (возвращаемый функциями setTimeout и setInterval ) и в нужном месте (обработчике кнопки, например) отменять его (через clearTimeout или clearInterval ) и запускать заново.
Отслеживать
ответ дан 22 фев 2019 в 11:31
381 1 1 золотой знак 3 3 серебряных знака 14 14 бронзовых знаков
Можете помочь с этим.В JS не силен
22 фев 2019 в 12:19
- javascript
- jquery
- таймер
-
Важное на Мете
Похожие
Подписаться на ленту
Лента вопроса
Для подписки на ленту скопируйте и вставьте эту ссылку в вашу программу для чтения RSS.
Дизайн сайта / логотип © 2024 Stack Exchange Inc; пользовательские материалы лицензированы в соответствии с CC BY-SA . rev 2024.1.3.2953
Нажимая «Принять все файлы cookie» вы соглашаетесь, что Stack Exchange может хранить файлы cookie на вашем устройстве и раскрывать информацию в соответствии с нашей Политикой в отношении файлов cookie.
Как перезапустить таймер в c
Одним из важнейших классов, находящихся в пространстве имени System.Threading, является класс Timer . Данный класс позволяет запускать определенные действия по истечению некоторого периода времени.
Например, нам надо запускать какой-нибудь метод через каждые 2000 миллисекунд, то есть раз в две секунды:
class Program < static void Main(string[] args) < int num = 0; // устанавливаем метод обратного вызова TimerCallback tm = new TimerCallback(Count); // создаем таймер Timer timer = new Timer(tm, num, 0, 2000); Console.ReadLine(); >public static void Count(object obj) < int x = (int)obj; for (int i = 1; i < 9; i++, x++) < Console.WriteLine($""); > > >
Первым делом создается объект делегата TimerCallback, который в качестве параметра принимает метод. Причем данный метод должен в качестве параметра принимать объект типа object .
И затем создается таймер. Данная перегрузка конструктора таймера принимает четыре параметра:
- объект делегата TimerCallback
- объект, передаваемый в качестве параметра в метод Count
- количество миллисекунд, через которое таймер будет запускаться. В данном случае таймер будет запускать немедленно после создания, так как в качестве значения используется 0
- интервал между вызовами метода Count
- Глава 1. Введение в C#
- Язык C# и платформа .NET
- Первая программа на C# с .NET CLI
- Начало работы с Visual Studio. Первая программа
- Первое приложение в WSL
- Структура программы
- Переменные и константы
- Литералы
- Типы данных
- Консольный ввод-вывод
- Арифметические операции
- Поразрядные операции
- Операции присваивания
- Преобразования базовых типов данных
- Условные выражения
- Конструкция if..else и тернарная операция
- Циклы
- Массивы
- Задачи с массивами
- Методы
- Параметры методов
- Возвращение значения и оператор return
- Передача параметров по ссылке и значению. Выходные параметры
- Массив параметров и ключевое слово params
- Рекурсивные функции
- Локальные функции
- Конструкция switch
- Перечисления enum
- Классы и объекты
- Конструкторы, инициализаторы и деконструкторы
- Класс Program и метод Main. Программы верхнего уровня
- Структуры
- Типы значений и ссылочные типы
- Область видимости (контекст) переменных
- Пространства имен
- Глобальные пространства имен
- Подключение пространств имен по умолчанию
- Создание библиотеки классов в Visual Studio
- Создание библиотеки классов с помощью .NET CLI
- Модификаторы доступа
- Свойства
- Перегрузка методов
- Статические члены и модификатор static
- Установка пакетов Nuget
- Константы, поля и структуры для чтения
- Null и ссылочные типы
- Null и значимые типы
- Проверка на null, операторы ?. и ??
- Псевдонимы типов и статический импорт
- Наследование
- Преобразование типов
- Виртуальные методы и свойства
- Скрытие методов и свойств
- Различие переопределения и скрытия методов
- Абстрактные классы
- Класс System.Object и его методы
- Обобщенные типы
- Ограничения обобщений
- Наследование обобщенных типов
- Конструкция try..catch..finally
- Блок catch и фильтры исключений
- Типы исключений. Класс Exception
- Генерация исключения и оператор throw
- Создание классов исключений
- Поиск блока catch при обработке исключений
- Делегаты
- Применение делегатов
- Анонимные методы
- Лямбды
- События
- Ковариантность и контравариантность делегатов
- Делегаты Action, Predicate и Func
- Замыкания
- Определение интерфейсов
- Применение интерфейсов
- Явная реализация интерфейсов
- Реализация интерфейсов в базовых и производных классах
- Наследование интерфейсов
- Интерфейсы в обобщениях
- Копирование объектов. Интерфейс ICloneable
- Сортировка объектов. Интерфейс IComparable
- Ковариантность и контравариантность обобщенных интерфейсов
- Определение операторов
- Перегрузка операций преобразования типов
- Индексаторы
- Переменные-ссылки и возвращение ссылки
- Методы расширения
- Частичные классы и методы
- Анонимные типы
- Кортежи
- Records
- Паттерн типов
- Паттерн свойств
- Паттерны кортежей
- Позиционный паттерн
- Реляционный и логический паттерны
- Паттерны списков
- Список List
- Двухсвязный список LinkedList
- Очередь Queue
- Стек Stack
- Словарь Dictionary
- Класс ObservableCollection
- Интерфейсы IEnumerable и IEnumerator
- Итераторы и оператор yield
- Класс Array и массивы
- Span
- Индексы и диапазоны
- Строки и класс System.String
- Операции со строками
- Форматирование и интерполяция строк
- Класс StringBuilder
- Регулярные выражения
- Структура DateTime
- Форматирование дат и времени
- DateOnly и TimeOnly
- Отложенная инициализация и тип Lazy
- Математические вычисления и класс Math
- Преобразование типов и класс Convert
- Введение в многопоточность. Класс Thread
- Создание потоков. Делегат ThreadStart
- Потоки с параметрами и ParameterizedThreadStart
- Синхронизация потоков
- Мониторы
- Класс AutoResetEvent
- Мьютексы
- Семафоры
- Задачи и класс Task
- Работа с классом Task
- Задачи продолжения
- Класс Parallel
- Отмена задач и параллельных операций. CancellationToken
- Асинхронные методы, async и await
- Возвращение результата из асинхронного метода
- Последовательное и параллельное выполнение. Task.WhenAll и Task.WhenAny
- Обработка ошибок в асинхронных методах
- Асинхронные стримы
- Основы LINQ
- Проекция данных
- Фильтрация коллекции
- Сортировка
- Объединение, пересечение и разность коллекций
- Агрегатные операции
- Получение части коллекции
- Группировка
- Соединение коллекций
- Проверка наличия и получение элементов
- Отложенное и немедленное выполнение LINQ
- Делегаты в запросах LINQ
- Введение в Parallel LINQ. Метод AsParallel
- Метод AsOrdered
- Обработка ошибок и отмена параллельных операции
- Введение в рефлексию. Класс System.Type
- Применение рефлексии и исследование типов
- Исследование методов и конструкторов с помощью рефлексии
- Исследование полей и свойств с помощью рефлексии
- Динамическая загрузка сборок и позднее связывание
- Атрибуты в .NET
- DLR в C#. Ключевое слово dynamic
- DynamicObject и ExpandoObject
- Использование IronPython в .NET
- Сборщик мусора в C#
- Финализируемые объекты. Метод Dispose
- Конструкция using
- Указатели
- Указатели на структуры, члены классов и массивы
- Работа с дисками
- Работа с каталогами
- Работа с файлами. Классы File и FileInfo
- FileStream. Чтение и запись файла
- Чтение и запись текстовых файлов. StreamReader и StreamWriter
- Бинарные файлы. BinaryWriter и BinaryReader
- Архивация и сжатие файлов
- Сериализация в JSON. JsonSerializer
- XML-Документы
- Работа с XML с помощью System.Xml
- Изменение XML-документа
- XPath
- Linq to Xml. Создание Xml-документа
- Выборка элементов в LINQ to XML
- Изменение документа в LINQ to XML
- Сериализация в XML. XmlSerializer
- Процессы
- Домены приложений
- AssemblyLoadContext и динамическая загрузка и выгрузка сборок
- Native AOT
- Нововведения в C# 11
- Нововведения в C# 12
Помощь сайту
410011174743222
Перевод на карту
Номер карты:
4048415020898850Контакты для связи: metanit22@mail.ru
Copyright © metanit.com, 2024. Все права защищены.
Использование таймеров
В этом разделе показано, как создавать и уничтожать таймеры, а также как использовать таймер для перехвата входных данных с помощью мыши через указанные интервалы.
В этом разделе содержатся следующие подразделы.
- Создание таймера
- Уничтожение таймера
- Использование функций таймера для перехвата входных данных с помощью мыши
- Связанные темы
Создание таймера
В следующем примере функция SetTimer используется для создания двух таймеров. Первый таймер устанавливается каждые 10 секунд, второй — каждые пять минут.
// Set two timers. SetTimer(hwnd, // handle to main window IDT_TIMER1, // timer identifier 10000, // 10-second interval (TIMERPROC) NULL); // no timer callback SetTimer(hwnd, // handle to main window IDT_TIMER2, // timer identifier 300000, // five-minute interval (TIMERPROC) NULL); // no timer callbackЧтобы обработать сообщения WM_TIMER , созданные этими таймерами, добавьте оператор WM_TIMER case в процедуру window для параметра hwnd .
case WM_TIMER: switch (wParam) < case IDT_TIMER1: // process the 10-second timer return 0; case IDT_TIMER2: // process the five-minute timer return 0; >Приложение также может создать таймер, WM_TIMER сообщения которого обрабатываются не процедурой main окна, а определенной приложением функцией обратного вызова, как показано в следующем примере кода, который создает таймер и использует функцию обратного вызова MyTimerProc для обработки сообщений WM_TIMER таймера.
// Set the timer. SetTimer(hwnd, // handle to main window IDT_TIMER3, // timer identifier 5000, // 5-second interval (TIMERPROC) MyTimerProc); // timer callbackСоглашение о вызовах для MyTimerProc должно основываться на функции обратного вызова TimerProc .
Если приложение создает таймер без указания дескриптора окна, приложение должно отслеживать очередь сообщений на наличие WM_TIMER сообщений и отправлять их в соответствующее окно.
HWND hwndTimer; // handle to window for timer messages MSG msg; // message structure while (GetMessage(&msg, // message structure NULL, // handle to window to receive the message 0, // lowest message to examine 0)) // highest message to examine < // Post WM_TIMER messages to the hwndTimer procedure. if (msg.message == WM_TIMER) < msg.hwnd = hwndTimer; >TranslateMessage(&msg); // translates virtual-key codes DispatchMessage(&msg); // dispatches message to window >Уничтожение таймера
Приложения должны использовать функцию KillTimer для уничтожения таймеров, которые больше не нужны. В следующем примере удаляются таймеры, определяемые константами IDT_TIMER1, IDT_TIMER2 и IDT_TIMER3.
// Destroy the timers. KillTimer(hwnd, IDT_TIMER1); KillTimer(hwnd, IDT_TIMER2); KillTimer(hwnd, IDT_TIMER3);Использование функций таймера для перехвата входных данных с помощью мыши
Иногда при наличии указателя мыши на экране необходимо запретить дополнительный ввод. Один из способов сделать это — создать специальную подпрограмму, которая перехватывает ввод с помощью мыши до тех пор, пока не произойдет определенное событие. Многие разработчики называют эту процедуру «построением мышеловки».
В следующем примере используются функции SetTimer и KillTimer для перехвата входных данных с помощью мыши. SetTimer создает таймер, который отправляет WM_TIMER сообщение каждые 10 секунд. Каждый раз, когда приложение получает WM_TIMER сообщение, оно записывает расположение указателя мыши. Если текущее расположение совпадает с предыдущим расположением и окно main приложения свернуто, приложение перемещает указатель мыши на значок. Когда приложение закрывается, KillTimer останавливает таймер.
HICON hIcon1; // icon handle POINT ptOld; // previous cursor location UINT uResult; // SetTimer's return value HINSTANCE hinstance; // handle to current instance // // Perform application initialization here. // wc.hIcon = LoadIcon(hinstance, MAKEINTRESOURCE(400)); wc.hCursor = LoadCursor(hinstance, MAKEINTRESOURCE(200)); // Record the initial cursor position. GetCursorPos(&ptOld); // Set the timer for the mousetrap. uResult = SetTimer(hwnd, // handle to main window IDT_MOUSETRAP, // timer identifier 10000, // 10-second interval (TIMERPROC) NULL); // no timer callback if (uResult == 0) < ErrorHandler("No timer is available."); >LONG APIENTRY MainWndProc( HWND hwnd, // handle to main window UINT message, // type of message WPARAM wParam, // additional information LPARAM lParam) // additional information < HDC hdc; // handle to device context POINT pt; // current cursor location RECT rc; // location of minimized window switch (message) < // // Process other messages. // case WM_TIMER: // If the window is minimized, compare the current // cursor position with the one from 10 seconds // earlier. If the cursor position has not changed, // move the cursor to the icon. if (IsIconic(hwnd)) < GetCursorPos(&pt); if ((pt.x == ptOld.x) && (pt.y == ptOld.y)) < GetWindowRect(hwnd, &rc); SetCursorPos(rc.left, rc.top); >else < ptOld.x = pt.x; ptOld.y = pt.y; >> return 0; case WM_DESTROY: // Destroy the timer. KillTimer(hwnd, IDT_MOUSETRAP); PostQuitMessage(0); break; // // Process other messages. // >Хотя в следующем примере также показано, как перехватить ввод мыши, он обрабатывает сообщение WM_TIMER через определяемую приложением функцию обратного вызова MyTimerProc, а не через очередь сообщений приложения.
UINT uResult; // SetTimer's return value HICON hIcon1; // icon handle POINT ptOld; // previous cursor location HINSTANCE hinstance; // handle to current instance // // Perform application initialization here. // wc.hIcon = LoadIcon(hinstance, MAKEINTRESOURCE(400)); wc.hCursor = LoadCursor(hinstance, MAKEINTRESOURCE(200)); // Record the current cursor position. GetCursorPos(&ptOld); // Set the timer for the mousetrap. uResult = SetTimer(hwnd, // handle to main window IDT_MOUSETRAP, // timer identifier 10000, // 10-second interval (TIMERPROC) MyTimerProc); // timer callback if (uResult == 0) < ErrorHandler("No timer is available."); >LONG APIENTRY MainWndProc( HWND hwnd, // handle to main window UINT message, // type of message WPARAM wParam, // additional information LPARAM lParam) // additional information < HDC hdc; // handle to device context switch (message) < // // Process other messages. // case WM_DESTROY: // Destroy the timer. KillTimer(hwnd, IDT_MOUSETRAP); PostQuitMessage(0); break; // // Process other messages. // >// MyTimerProc is an application-defined callback function that // processes WM_TIMER messages. VOID CALLBACK MyTimerProc( HWND hwnd, // handle to window for timer messages UINT message, // WM_TIMER message UINT idTimer, // timer identifier DWORD dwTime) // current system time < RECT rc; POINT pt; // If the window is minimized, compare the current // cursor position with the one from 10 seconds earlier. // If the cursor position has not changed, move the // cursor to the icon. if (IsIconic(hwnd)) < GetCursorPos(&pt); if ((pt.x == ptOld.x) && (pt.y == ptOld.y)) < GetWindowRect(hwnd, &rc); SetCursorPos(rc.left, rc.top); >else < ptOld.x = pt.x; ptOld.y = pt.y; >> >