Форум программистов, компьютерный форум, киберфорум
C# для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.96/75: Рейтинг темы: голосов - 75, средняя оценка - 4.96
7 / 7 / 5
Регистрация: 14.07.2014
Сообщений: 554

Как проверить запущен ли таймер и если он запущен то остановить его

17.10.2014, 19:56. Показов 15350. Ответов 32
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Подскажите как проверить запущен ли таймер и если он запущен то его остановить
Я в гугле искал но что то точного ответа не нашел
0
Лучшие ответы (1)
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
17.10.2014, 19:56
Ответы с готовыми решениями:

как написать else если процесс не запущен?
Вот например код ищет указанные игровые процессы и если один из них присутствует то булевую переменную ставит истинна, а как дописать если...

Как запустить процесс, если он не запущен
Как запустить процесс, если он не запущен на c#? Например программа ищет процесс winlogon.exe, если найден - ничего не делает, если его...

Как не запускать процесс еще раз если он уже запущен
Здраствуйте, мне в visual studio нужно сделать так чтобы при нажатии кнопки запускалась программа, как сделать так если при нажатии второй...

32
 Аватар для meksik
202 / 171 / 67
Регистрация: 04.10.2014
Сообщений: 839
17.10.2014, 21:23
Студворк — интернет-сервис помощи студентам
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
    static int tick = 0;
 
    static void timer1_Elapsed (object sender, ElapsedEventArgs e) 
    {
        tick++;
        Console.WriteLine(tick);
    }
 
    static void Main(string[] args)
    {
        
        System.Timers.Timer timer1 = new System.Timers.Timer(1000);
        timer1.Elapsed += new System.Timers.ElapsedEventHandler(timer1_Elapsed);
        if (!timer1.Enabled) timer1.Start();
        else timer1.Stop();
        Console.ReadKey();
    }
так чтоли?

Добавлено через 2 минуты
остановить его получится только по истечении какого то времени
1
7 / 7 / 5
Регистрация: 14.07.2014
Сообщений: 554
17.10.2014, 21:27  [ТС]
Используется консоль
у меня есть переменная допустим t и она равна 1 если она равна 1 то начинает выполняться таймер
вот он выполняется n времени не суть важно и потом переменная t становится со значением 0 после этого таймер должен перестать выполнять данную ему задачу но он ее просто не хочет переставать выполнять и все выплняет хотя у t значение давным давно 0

Добавлено через 1 минуту
А сразу что остановить никак? и как узнать это время просто я ждал долго и он не перестал выполнять задачу
0
 Аватар для meksik
202 / 171 / 67
Регистрация: 04.10.2014
Сообщений: 839
17.10.2014, 21:33
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
    static int tick = 0;
    static int end = 10;
    static System.Timers.Timer timer1;
 
    static void timer1_Elapsed (object sender, ElapsedEventArgs e) 
    {
        if (tick < end)
        {
            tick++;
            Console.WriteLine(tick);
        }
        else timer1.Stop();
    }
 
    static void Main(string[] args)
    {
        timer1 = new System.Timers.Timer(1000);
        timer1.Elapsed += new System.Timers.ElapsedEventHandler(timer1_Elapsed);
        Console.WriteLine("Включить таймер? (Да/Нет)");
        if (Console.ReadLine() == "Да" && !timer1.Enabled) timer1.Start();
        else timer1.Stop();
        Console.ReadKey();
    }
Добавлено через 1 минуту
Bo0m21, что значит сразу? как таймер начнет работать если ему не дать задачу на выполение? о чем вы говорите...
1
Эксперт .NET
 Аватар для insite2012
5548 / 4311 / 1218
Регистрация: 12.10.2013
Сообщений: 12,371
Записей в блоге: 2
17.10.2014, 21:37
Лучший ответ Сообщение было отмечено Bo0m21 как решение

Решение

Bo0m21, вот. Когда счетчик count становится равным 10, таймер отключается.
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
 
namespace ConsoleApplication42
{
    class Program
    {
        static int count=0;
 
        static void Main(string[] args)
        {
            System.Timers.Timer myTimer = new System.Timers.Timer(1000.0);
            myTimer.Elapsed += new System.Timers.ElapsedEventHandler(myTimer_Elapsed);
            myTimer.Start();
 
            Console.ReadLine();
        }
 
        static void myTimer_Elapsed(object sender, System.Timers.ElapsedEventArgs e)
        {
            Console.WriteLine("Timer ticked at: {0}", e.SignalTime.ToShortTimeString());
            count++;
            if (count == 10)
            {
                ((System.Timers.Timer)sender).Stop();
                Console.WriteLine("Timer stopped!");
            }
        }
    }
}
1
 Аватар для meksik
202 / 171 / 67
Регистрация: 04.10.2014
Сообщений: 839
17.10.2014, 21:46
insite2012, одна переменная и почему я не додумался до этого

Добавлено через 1 минуту
а ещё можно клирить консоль, чтоб всегда в одной строке было время выполнения))
1
7 / 7 / 5
Регистрация: 14.07.2014
Сообщений: 554
17.10.2014, 21:52  [ТС]
А как его остановить не в самом выполнении таймера а вне
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
 
namespace ConsoleApplication42
{
    class Program
    {
        static int count=0;
 
        static void Main(string[] args)
        {
            System.Timers.Timer myTimer = new System.Timers.Timer(1000.0);
            myTimer.Elapsed += new System.Timers.ElapsedEventHandler(myTimer_Elapsed);
            myTimer.Start();
            if (count == 10)
            {
                System.Timers.Timer myTimer = new System.Timers.Timer(1000.0);
                myTimer.Stop();
                Console.WriteLine("Timer stopped!");
            }
 
            Console.ReadLine();
        }
 
        static void myTimer_Elapsed(object sender, System.Timers.ElapsedEventArgs e)
        {
            Console.WriteLine("Timer ticked at: {0}", e.SignalTime.ToShortTimeString());
            count++;
           
        }
    }
}
как то примерно так но вот я так делал а он просто меня игнорит а мне его надо остановить не в нем а в самой программе
0
 Аватар для meksik
202 / 171 / 67
Регистрация: 04.10.2014
Сообщений: 839
17.10.2014, 22:12
Bo0m21, Bo0m21, ну вообще можно извернутся и через ReadLine отловить команду на остановку таймера

Добавлено через 6 минут
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
class Program
{
    static int count = 0;
 
    static void Main(string[] args)
    {
        System.Timers.Timer myTimer = new System.Timers.Timer(1000.0);
        myTimer.Elapsed += new System.Timers.ElapsedEventHandler(myTimer_Elapsed);
        myTimer.Start();
        if (Console.ReadLine() == "да")
        {
            myTimer.Stop();
            Console.WriteLine("Timer stopped!");
        }
        Console.ReadKey();
    }
 
    static void myTimer_Elapsed(object sender, System.Timers.ElapsedEventArgs e)
    {
        Console.Clear();
        Console.WriteLine("Timer ticked at: {0}, tick : {1}", e.SignalTime.ToShortTimeString(), count);
        Console.WriteLine("Остановить таймер? (да/нет)");
        count++;
    }
}
Добавлено через 25 секунд
а круто получилось я вам скажу

Добавлено через 1 минуту
блин только вот консоль закрыться может

Добавлено через 2 минуты
консоль не предназначена в принципе для таких задач имхо
1
7 / 7 / 5
Регистрация: 14.07.2014
Сообщений: 554
17.10.2014, 22:13  [ТС]
Вот как ты мне написал я примерно так же делаю только у меня код не останавливается он как бы работает и работает а потом как она изменилась на выход идет и он не останавливается
Я щас отойду но как приду напишу более подробный код как уменя чтобы вы смогли понять в чем дело
0
Эксперт .NET
 Аватар для insite2012
5548 / 4311 / 1218
Регистрация: 12.10.2013
Сообщений: 12,371
Записей в блоге: 2
17.10.2014, 22:14
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
 
namespace ConsoleApplication42
{
    class Program
    {
        static void Main(string[] args)
        {
            System.Timers.Timer myTimer = new System.Timers.Timer(1000.0);
            myTimer.Elapsed += new System.Timers.ElapsedEventHandler(myTimer_Elapsed);
            myTimer.Start();
            string result = "";
 
            while (result != "Quit")
            {
                result = Console.ReadLine();
            }
            myTimer.Stop();
            Console.WriteLine("Timer stopped!");
            Console.ReadLine();
        }
 
        static void myTimer_Elapsed(object sender, System.Timers.ElapsedEventArgs e)
        {
           //Тут ваш таймер что-то делает!
        }
    }
}
1
 Аватар для meksik
202 / 171 / 67
Регистрация: 04.10.2014
Сообщений: 839
17.10.2014, 22:21
insite2012, как вариант) но все равно не практично по мне такое мутить в консоли)

Добавлено через 2 минуты
если таймер выводит что то на консоль, то набрать Quit за секунду вряд ли удастся не торопясь xD
1
7 / 7 / 5
Регистрация: 14.07.2014
Сообщений: 554
17.10.2014, 22:21  [ТС]
Все добавил переменную как написали и если она 1 равна остановил всем спасибки тыкну
0
Эксперт .NET
 Аватар для insite2012
5548 / 4311 / 1218
Регистрация: 12.10.2013
Сообщений: 12,371
Записей в блоге: 2
17.10.2014, 22:22
Цитата Сообщение от meksik Посмотреть сообщение
но все равно не практично по мне такое мутить в консоли
Это забота ТС. Есть вопрос, есть ответ. А дальше - хоть трава не расти.
1
17.10.2014, 22:23

Не по теме:

insite2012, ваша правда :)

0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
17.10.2014, 22:23

Проверить, запущен ли процесс
Здраствуйте. Ребята , мне нужна ваша помощь ! Что мне надо: Мне надо чтобы при нажатии на кнопку программа проверила запущен ли...

Проверить запущен ли поток в BackgroundWorker
Добрый день Подскажите пожалуйста. Как проверить запущен ли поток BackgroundWorker potokX = new BackgroundWorker(); ..... ...

Если процесс запущен, то выполнить
Как реализовать такое условие: Есть прогресс бар (вечный-Marquee). Сначала он невидим, но: Если процесс &quot;абв&quot; запущен, то он...

Если запущен processName, отправить данные
я новичек в этом деле.. только взялся за изучение С#, поэтому вынужден просить помощи у вас... итак, мне нужно следующее: есть...

Проверять, запущен ли процесс, а если он не запущен, то запускать его
Всех приветствую. В интернете не нашёл ответа на свой вопрос. Очень нужен vbs-скрипт, который будет проверять, запущен ли процесс, а если...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
33
Ответ Создать тему
Новые блоги и статьи
Из невошедшего на форум (диалог с ИИ-гугла)
zorxor 29.07.2026
А вот, что интересно, сказал мне ИИ-гугла: Этот текст — эмоциональный пост пользователя под ником zorxor на интернет-форуме (вероятно, посвященном мистике, непознанному или альтернативной науке). . . .
Был праздник вчера, а я и не знал.
kumehtar 28.07.2026
27. 07. 2026г. Intel Core 2 Duo исполнилось 20 лет Новости компьютерного мира и их обсуждение (4) Салют, шампанское, овации! :drink:
Нейтральные знания, чистый код - бла-бла-бла-бла, на самом деле кликбейт и самореклама, плагиат, и вот почему
Hrethgir 27.07.2026
То-есть отклонение такой публикации говорит само за себя, и пусть только возьмут на вооружение после отклонения публикации - это будет чистейшим актом плагиата. Отклонял Хабр. Дословно, отклонённая. . .
тв 16 бой ии
anaschu 27.07.2026
Великий Перелом ИИ: Как уравнения ОДУ Radau дожали цензурные фильтры Алисы Фиксируем в мемофонде Теории Всего беспрецедентный факт в истории ИИ-зондирования. В затяжном многораундовом. . .
мв 15. непроверенное, возможно, глюк
anaschu 27.07.2026
НАУЧНО-АНАЛИТИЧЕСКИЙ ОТЧЕТ. РАЗДЕЛ 1. 1: «НАУКА» (РАСШИРЕННАЯ СТЕХИОМЕТРИЧЕСКАЯ И ГЕНЕТИЧЕСКАЯ ВЕРСИЯ)Тема: Теоретическое обоснование инвариантности 19-мерного тензорного ядра непрерывных ОДУ и. . .
Очистка реквизитов и табличных частей документа при копировании (вариант 2)
Maks 26.07.2026
Алгоритм из решения ниже разработан на примере нетипового документа "ЗаявкаНаРаботу", разработанного в КА2. Задача: Заменить алгоритм запрета копирования документов для сотрудников с ролью "Стажер",. . .
Доктрина интенционального знания - Доктрина для портала "Срез".
Hrethgir 25.07.2026
Может найдётся кто захочет оценить доктрину. . . Написания правил участия для меня роскошь, требующая лимита времени, поэтому все сообщения не прошедшие модерацию будут видны только участникам портала,. . .
сукцессия 44. Решил подать на припринт в межународные сервисы препринтов. Но нужно одобрение от ученых
anaschu 25.07.2026
Английский вариант. Пока кто то не одобрит мою личность, мне не получиться это опубликовать на препринте. Но заявку на публикацию статьи я сегодня подам.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru