Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > .NET Frameworks (точка нет фреймворки) > C# (си шарп)
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 02.02.2017, 14:27   #21
Alex11223
Старожил
 
Аватар для Alex11223
 
Регистрация: 12.01.2011
Сообщений: 19,500
По умолчанию

Дык зачем потоку смотреть сколько осталось, а тем более лезть за этим в UI? Просто посчитайте время завершения в начале.

(вообще вам точно нужна пауза "на {TimeSpan}", а не "до MM.DD.YYYY hh:mm:ss"?)
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом.
Alex11223 вне форума Ответить с цитированием
Старый 02.02.2017, 15:11   #22
OmegaBerkut
Спокойный псих
Участник клуба
 
Аватар для OmegaBerkut
 
Регистрация: 19.03.2013
Сообщений: 1,538
По умолчанию

Цитата:
Сообщение от Alex11223 Посмотреть сообщение
Дык зачем потоку смотреть сколько осталось, а тем более лезть за этим в UI?
Я сделал одиночную проверку, включена ЛИ функция задержки; сейчас переделал - при изменении галочки меняется флаг bool, к которому (флагу) потом обращается поток.
Цитата:
Сообщение от Alex11223 Посмотреть сообщение
Просто посчитайте время завершения в начале
Время завершения указывает пользователь в UI - DateTimePicker, где указывается время запуска.
От этого времени уже рассчитывается, сколько времени должно пройти (requestticks) - как костыль.
Подпись ? Не, не слышал ...
OmegaBerkut вне форума Ответить с цитированием
Старый 02.02.2017, 15:27   #23
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

Цитата:
Сообщение от OmegaBerkut Посмотреть сообщение
Это я знаю ... Собственно, это и есть ответ на ваш вопрос, зачем я отбрасываю даты - что бы при сравнении/разности не получать артефакты.
это не ответ на вопрос зачем отбрасывать даты, чтоб потом делать плюс день
так же непонятно зачем вы вообще пытаетесь все переводить в иные единицы, DateTime отлично и сравнивается и прочее.
но вы зачем-то делаете через одно место.

Цитата:
Сообщение от OmegaBerkut Посмотреть сообщение
Нужна для того, что бы таймер понял, что процесс висел без работы (компьютер был во сне), и длилось это дольше чем нужно программе/пользователю. Иначе - после выхода из сна отсчёт продолжится/начнётся "по новой", как для следующего дня ...
нужно просто делать не тиками, а сравнить даты прямо.
а еще можно заюзать WaitableTimer и получить событие напрямую. без всяких циклов и прочего.
Цитата:
Сообщение от OmegaBerkut Посмотреть сообщение
От этого времени уже рассчитывается, сколько времени должно пройти (requestticks) - как костыль.
зачем? сравнить не дано?

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

PS: WaitableTimer так же может вывести машину и ждущего/спящего режима
(в некоторых случаях даже включить ее)
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 02.02.2017, 15:41   #24
OmegaBerkut
Спокойный псих
Участник клуба
 
Аватар для OmegaBerkut
 
Регистрация: 19.03.2013
Сообщений: 1,538
По умолчанию

Цитата:
Сообщение от Пепел Феникса Посмотреть сообщение
без всяких циклов и прочего
Так не интересно.
Цитата:
Сообщение от Пепел Феникса Посмотреть сообщение
чтоб потом делать плюс день
Плюс день для того, что бы вечером поставить на отложенный запуск, и уйти спать.
Цитата:
Сообщение от Пепел Феникса Посмотреть сообщение
WaitableTimer так же может вывести машину и ждущего/спящего режима
А это уже интересно, возьму на заметку.
Правда не понятно, как из спящего выводится то ? Этож компьютер полностью выключен (данные на диске).
Цитата:
Сообщение от Пепел Феникса Посмотреть сообщение
(в некоторых случаях даже включить ее)
Это мне вообще не понятно ... Как ? И главное - зачем ?
Ведь если компьютер выключен полностью, - пока неважно, каким образом компьютер будет включён - при запуске программа должна запуститься ...
Допустим - она (программа) прописана в автозагрузку ... Но тогда эта программа должна уметь сохранять данные, которые нужно будет в дальнейшем подгружать, что бы выполнить - пока вроде всё логично.
Но, всё это ломается ровно тогда, когда конечный пользователь запаролил винду.
Подпись ? Не, не слышал ...

Последний раз редактировалось OmegaBerkut; 02.02.2017 в 15:47.
OmegaBerkut вне форума Ответить с цитированием
Старый 02.02.2017, 15:48   #25
Alex11223
Старожил
 
Аватар для Alex11223
 
Регистрация: 12.01.2011
Сообщений: 19,500
По умолчанию

Цитата:
Сообщение от OmegaBerkut Посмотреть сообщение
Плюс день для того, что бы вечером поставить на отложенный запуск, и уйти спать.
Дык берите сразу DateTime и все.
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом.
Alex11223 вне форума Ответить с цитированием
Старый 02.02.2017, 17:01   #26
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

Цитата:
Сообщение от OmegaBerkut Посмотреть сообщение
Так не интересно.
а потом в привычку войдет.

Цитата:
Сообщение от OmegaBerkut Посмотреть сообщение
Правда не понятно, как из спящего выводится то ? Этож компьютер полностью выключен (данные на диске).
у компа время все равно тикает, и в данном случае имелся в виду ждущий(в XP, выше он спящий называется).
гибернация тоже возможно, но тут еще от настроек биоса/UEFI зависит.

Цитата:
Сообщение от OmegaBerkut Посмотреть сообщение
Плюс день для того, что бы вечером поставить на отложенный запуск, и уйти спать.
Код:
var diff=futureDate-DateTime.Now;
if(diff.TotalDays>1)
  // ждать больше суток
else
  //ждать менее суток.
и не надо никаких костылей. потом у вас станет более двух суток, будете еще костыли писать?
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 02.02.2017, 18:29   #27
OmegaBerkut
Спокойный псих
Участник клуба
 
Аватар для OmegaBerkut
 
Регистрация: 19.03.2013
Сообщений: 1,538
По умолчанию

Цитата:
Сообщение от Пепел Феникса Посмотреть сообщение
и не надо никаких костылей. потом у вас станет более двух суток, будете еще костыли писать?
Костыльная функция OverTime() спасёт хоть от одного года ... Эта функция сравнивает goneticks>=requestticks
requestticks - рассчитывается до старта таймера, определяет сколько должно пройти;
goneticks - постоянно увеличивается c момента старта таймера.

Цитата:
Сообщение от Пепел Феникса Посмотреть сообщение
а потом в привычку войдет.
Так уже вошло ... Тут всё дело в предпочтениях ... Так как программа создаётся из личного интереса, и интереса близкого круга общения - деньги за программу я не требую; а значит - можно делать так, как нравится, а не так, что бы быстрее.
Подпись ? Не, не слышал ...

Последний раз редактировалось OmegaBerkut; 02.02.2017 в 18:52.
OmegaBerkut вне форума Ответить с цитированием
Старый 02.02.2017, 18:43   #28
Alex11223
Старожил
 
Аватар для Alex11223
 
Регистрация: 12.01.2011
Сообщений: 19,500
По умолчанию

Причем тут быстрее?
Быстрее вообще не причем, тут о поддерживаемости (чтоб можно было понять код через неделю, и чтоб было легче изменять) и правильности работы (вероятность допустить ошибку со своими костылями больше, чем с нормальным решением).
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом.
Alex11223 вне форума Ответить с цитированием
Старый 02.02.2017, 18:50   #29
OmegaBerkut
Спокойный псих
Участник клуба
 
Аватар для OmegaBerkut
 
Регистрация: 19.03.2013
Сообщений: 1,538
По умолчанию

Цитата:
Сообщение от Alex11223 Посмотреть сообщение
чтоб можно было понять код через неделю, и чтоб было легче изменять
С этим у меня никогда не было проблем. Даже если код чужой. И даже если код не комментирован.
Цитата:
Сообщение от Alex11223 Посмотреть сообщение
вероятность допустить ошибку со своими костылями больше, чем с нормальным решением
Разве это не есть трата времени - поиск и исправление ошибок ?
Суть та же: если мне за программу никто не платит - я напишу своё, потрачу своё время, и да - мне так нравится. Я уже когда то писал об этом.

WaitableTimer - я так понял, что это нечто не стандартное ...
Где достать для шарпа ?
Подпись ? Не, не слышал ...

Последний раз редактировалось OmegaBerkut; 02.02.2017 в 19:06.
OmegaBerkut вне форума Ответить с цитированием
Старый 03.02.2017, 00:24   #30
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

про принцип, "я пишу для себя, потому буду писать говно-код" я промолчу.

про таймеры.
http://stackoverflow.com/questions/1...-timers-in-net
да и их можно заменить в принципе, тот же Event лучше чем Sleep.

Цитата:
Сообщение от OmegaBerkut Посмотреть сообщение
Разве это не есть трата времени - поиск и исправление ошибок ?
трата, но проблема в том что вы запомните свое решение в итоге, куча таких "запомнил" и работа в фирме станет невозможна.
ибо вы принципиально отрицаете хорошие решения.
про ваш рестарт вообще отдельная тема, это неприемлимо для нормального приложения(без критичной на то причины), будете писать некий сервер, тоже рестартить будете чуть что?(с потерей коннектов причем)

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

Последний раз редактировалось Пепел Феникса; 03.02.2017 в 00:33.
Пепел Феникса вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Аналог Thread.Sleep или Task.Delay vovaza29 C# (си шарп) 12 17.09.2015 21:22
работа с файлом txt с помощью потока thread в С++ helpmybrains Помощь студентам 0 04.12.2014 10:49
Истекло время ожидания (Timeout). Время ожидания истекло до завершения операции или сервер не отвечает. kgs_forum C# (си шарп) 1 20.08.2013 20:14
Thread и Queue: пересылка данных из потока в поток fshlik C# (си шарп) 5 16.02.2013 13:27
Контролируемый Sleep потока. Человек_Борща Win Api 10 26.09.2012 12:14