powered by simpleCommunicator - 2.0.56     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Выполнить действие в нужное время (потоки)
10 сообщений из 10, страница 1 из 1
Выполнить действие в нужное время (потоки)
    #38205254
Фотография VTepes
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Здравствуйте. Пишу я приложение, которое записывает передачи с интернет-радио. Пытаюсь реализовать такую функцию, как обрыв по времени (т.е. пользователь ввел время-когда нужное время наступило, программа обрывает запись одной дорожки и пишет другую). Есть два потока: в первом с помощью метода Download(), а во втором в бесконечном цикле слежу за временем (причем время остановки вводит сам пользователь в листбокс):
Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
hrDownload = new Thread(delegate() {Download(urlBox.Text);});
            thrTime = new Thread(delegate() {
                while (true)
                {
                    if (DateTime.Now.ToString("dd.MM.yy hh.mm") == timedateListBox.Items[0].ToString())
                    {
                        Stop();
                        thrDownload.Start();
                        MessageBox.Show("Прервано");
 
                    }
 
 
                }
            });
 
 
 
            thrDownload.Start();
            thrTime.Start();


Но проблема в том, что ничего по наступлению нужного времени не происходит. Может, дело в формате даты?
P.S. Метод Stop() обрывает поток thrDownload (поток, в котором идет загрузка).
...
Рейтинг: 0 / 0
Выполнить действие в нужное время (потоки)
    #38205331
fadday
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
В отладчике глянь. И почему без секунд?
...
Рейтинг: 0 / 0
Выполнить действие в нужное время (потоки)
    #38205333
fadday
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Код: c#
1.
2.
3.
4.
Stop();
                        thrDownload.Start(); // WTF?!!!!!!!

                        MessageBox.Show("Прервано");
...
Рейтинг: 0 / 0
Выполнить действие в нужное время (потоки)
    #38205337
Lelouch
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ТС,
Код: c#
1.
if (DateTime.Now.ToString("dd.MM.yy hh.mm") == timedateListBox.Items[0].ToString())



Индийский код детектед. Вы bool тоже через приведение к строке проверяете?
Не проще ли парсить элемент ListBox? А если там изначально DateTime, то приведением типа...

fadday,

Код: c#
1.
thrDownload.Start(); // WTF?!!!!!!!


Что у вас тут вызвало недоумение?
...
Рейтинг: 0 / 0
Выполнить действие в нужное время (потоки)
    #38205339
fadday
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
LelouchТС,
Код: c#
1.
if (DateTime.Now.ToString("dd.MM.yy hh.mm") == timedateListBox.Items[0].ToString())



Индийский код детектед. Вы bool тоже через приведение к строке проверяете?
Не проще ли парсить элемент ListBox? А если там изначально DateTime, то приведением типа...

fadday,

Код: c#
1.
thrDownload.Start(); // WTF?!!!!!!!


Что у вас тут вызвало недоумение?

Разве не в этом месте он должен останавливаться, а не запускаться?
...
Рейтинг: 0 / 0
Выполнить действие в нужное время (потоки)
    #38205368
Фотография VTepes
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
fadday,дело в том, что в этот момент загрузка должна остановиться, а потом запуститься снова, но писать передачу с радио уже в другой файл.
...
Рейтинг: 0 / 0
Выполнить действие в нужное время (потоки)
    #38205376
Фотография Где-то в степи
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
VTepes,
зачем вам два потока, все можно сделать в одном, при наступлении чего то просто поменять место куда писать...
зы if (DateTime.Now.ToString("dd.MM.yy hh.mm") == timedateListBox.Items[0].ToString()),
то же улыбнуло не по детский.
...
Рейтинг: 0 / 0
Выполнить действие в нужное время (потоки)
    #38205377
Фотография VTepes
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Где-то в степи, ночью писал.:) А по-поводу одного потока - сейчас попробую.
...
Рейтинг: 0 / 0
Выполнить действие в нужное время (потоки)
    #38205381
Фотография Где-то в степи
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
VTepes,
да вы просто не сломя голову бросайтесь в омут.
а разбейте задачу на независимые блоки ( не знают друг о друге)
в данном случае шедуллер ( планировщик задач) выдает импульсы исходя из чего то ( погода, время и тд)
и что то что подписывается на эти импульсы ( миньет, запись в файл, звуковой рисунок), ну и про развязку не забыть..
...
Рейтинг: 0 / 0
Выполнить действие в нужное время (потоки)
    #38205390
Фотография VTepes
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Где-то в степи, т.е шедуллер - это мой поток, отслеживающий время, а то, что на него подписано - метод Stop() и последующий вызов метода Download?
...
Рейтинг: 0 / 0
10 сообщений из 10, страница 1 из 1
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Выполнить действие в нужное время (потоки)
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]