1 / 1 / 0
Регистрация: 30.01.2014
Сообщений: 148
1

Как правильно отсчитать время не повесив приложение

28.03.2014, 11:20. Показов 1139. Ответов 10
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Всем привет. Подскажите пожалуйста, уже всю голову сломал.
У меня есть цикл, при наступлении истинного события вызывается метод. Через несколько секунд мне нужно вызвать другой метод. Проблема в том, что если я останавливал поток на секунду две, критичного что приложение не отвечает для меня небыло. Теперь мне нужно между событиями что бы прошло 5 минут. И у меня приложение вешается на 5 минут. Как побороть?
C#
1
2
3
4
5
6
                ZHIRAF(SIZEPOSITION1);
                Console.Beep();
                System.Threading.Thread.Sleep(500000);
                KILLZHIRAF();
                Console.Beep();
                Console.Beep();
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
28.03.2014, 11:20
Ответы с готовыми решениями:

Как правильно отсчитать количество нажатий
private void btnBall_Click_1(object sender, EventArgs e) { if...

Создание приложение типа Messenger. Как правильно создать такое приложение?
Доброго времени суток. Вот мне нужно написать приложение типа Messenger на технологии WinForms или...

Создание приложение типа Messenger. Как правильно создать такое приложение?
Доброго времени суток. Вот мне нужно написать приложение типа Messenger на технологии WinForms или...

Как в программе отсчитать рабочие дни?
Как в программе отсчитать каледарные дни? Бухгалтерия. Добавлено через 18 минут Виноват....

10
54 / 71 / 20
Регистрация: 26.06.2013
Сообщений: 194
28.03.2014, 11:31 2
Попробуйте таймер использовать
0
Заблокирован
28.03.2014, 11:32 3
Используйте таймер. Если хотите не повесить приложение используйте классы BackgroundWorker или потоки Thread
0
1057 / 864 / 195
Регистрация: 31.03.2010
Сообщений: 2,521
28.03.2014, 11:34 4
C#
1
2
3
4
5
6
7
8
static Thread th = new Thread(() => { Thread.Sleep(1000); KILLZHIRAF();} );
main 
{
//через  1 сек будет выполнен метод KILLZHIRAF
  th.Start();
//ждем одну секунду
  Console.Read();
}
0
1 / 1 / 0
Регистрация: 30.01.2014
Сообщений: 148
28.03.2014, 13:19  [ТС] 5
Подскажите пожалуйста не повесит ли таймер приложение и если не сложно пример таймера приведите
0
30 / 30 / 8
Регистрация: 15.04.2013
Сообщений: 244
28.03.2014, 13:24 6
roma095, Вам привели пример с потоками. Таймер приложение не повесит уж точно, хотя кто знает на что способны люди...
0
1057 / 864 / 195
Регистрация: 31.03.2010
Сообщений: 2,521
28.03.2014, 13:26 7
roma095, самый простой таймер:
C#
1
static Thread th = new Thread(() => { while(true){ Thread.Sleep(1000); KILLZHIRAF();}} );
Добавлено через 49 секунд
мсдн с таймером

Добавлено через 25 секунд
Cтанислав, он есть в System.Threading
0
30 / 30 / 8
Регистрация: 15.04.2013
Сообщений: 244
28.03.2014, 13:28 8
Learx, уже посмотрел
0
1 / 1 / 0
Регистрация: 30.01.2014
Сообщений: 148
28.03.2014, 13:44  [ТС] 9
Попробовал сделать так, у меня ошибка Ошибка 1 Невозможно использовать локальную переменную "th" до ее объявления

Где я ошибся?



C#
1
2
3
4
5
6
7
8
9
10
11
12
13
if ( A>= B)//сравниваем предыдущее значение с настоящим 
            {
                
                ZHIRAF1(SIZEPOSITION1);
                Console.Beep();
                
                th.Start();
                Thread th = new Thread(() => { while(true){ Thread.Sleep(10000); KILLZHIRAF();}} );
                th.Start();
                Console.Beep();
                Console.Beep();
                
            }
0
1057 / 864 / 195
Регистрация: 31.03.2010
Сообщений: 2,521
28.03.2014, 13:52 10
написали th.Start(); перед объявлением th. вам же так и написали

удалите строчку 7
0
1 / 1 / 0
Регистрация: 30.01.2014
Сообщений: 148
28.03.2014, 14:54  [ТС] 11
Да, ошибка исчезла, но у меня сразу метод вызывается после первого без перерыва

Добавлено через 34 минуты
Приношу извинения, все работает.Пропустил ноль во времени ожидания, по этому через секунду вызывался уже второй метод.
0
28.03.2014, 14:54
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
28.03.2014, 14:54
Помогаю со студенческими работами здесь

Как отсчитать секунды с заданной даты?
Как отсчитать секунды с заданной даты? Например с 01.01.0001 ?

Как обработать правильно время
Добрый день. Подскажите как правильно в js обработать такой формат даты "PT9H", "PT9H30M", чтобы...

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

Как правильно закрыть приложение
Добрый день, имеется приложение, которое подключается к устройству по tcpip. Проблема заключается...


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

Или воспользуйтесь поиском по форуму:
11
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru