Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2004.10.10;
Скачать: CL | DM;

Вниз

время в потоке   Найти похожие ветки 

 
appendix ©   (2004-09-19 12:29) [0]

В моём приложении нужно выводить текущее время в StatusBar"е.
Хотел это дело организовать через поток.
Всё работает. Но приложение начинает страшно тормозить.
Особенно когда хочу открыть новый файл.
Когда вручную отключаю поток, торможение прекращается.

Я почему-то думал раньше, что потоки они нужны чтоб параллельно выполнять задачи.
И не тормозить основной процесс.

В чём я не прав?
Как правильно организовать вывод текущего времени с секундами?


 
VMcL ©   (2004-09-19 12:56) [1]

>>appendix ©  (19.09.04 12:29)

1. Application.OnIdle
2. TTimer

>Но приложение начинает страшно тормозить.

Поставь в цикле, который выполняется в кодовом потоке:
Sleep(1) или даже Sleep(250)


 
Defunct ©   (2004-09-19 13:48) [2]

и приоритет потока поставь tpIdle


 
Anatoly Podgoretsky ©   (2004-09-19 14:00) [3]

appendix ©   (19.09.04 12:29)  
У тебя же поток ничего делать не будет, только спать, а для этго есть таймеры.


 
appendix ©   (2004-09-20 20:03) [4]

[3] У тебя же поток ничего делать не будет, только спать, а для этго есть таймеры.

А я пробовал таймеры. Но у меня есть ещё один поток в котором я работаю с com портом. И были проблемы с приёмом. Пришлось отказаться от посекундного вывода времени. Стал выводить поминутно. Но оказалось что запуск минутного таймера надо засинхронизировать. И пришлось лепить таймер синхронизатор.


 
Defunct ©   (2004-09-20 20:11) [5]

> Пришлось отказаться от посекундного вывода времени.

Компьютер - 386SX16?

Поставь потоку, который обрабатывает COM приоритет tpHigher, а потоку, который отвечает за вывод времени - tpIdle.


 
appendix ©   (2004-09-21 19:16) [6]

< Поставь потоку, который обрабатывает COM приоритет tpHigher, а потоку, который отвечает за вывод времени - tpIdle. >

В каком месте это ставится? а процессор celeron 1700.


 
Defunct ©   (2004-09-21 19:28) [7]

Я, обычно, приоритет устанавливаю в перекрытом конструкторе потока. Priority := tpIdle, но можно и просто Thread.Priority := tpIdle.



Страницы: 1 вся ветка

Текущий архив: 2004.10.10;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.028 c
4-1091205205
ASd
2004-07-30 20:33
2004.10.10
состояние лотка у CD


14-1095508040
Программер_
2004-09-18 15:47
2004.10.10
Вот привожу код и пусть кто мне сможет сказать что нем


3-1095154874
12345
2004-09-14 13:41
2004.10.10
Можно ли менять содержимое таблицы, если менятьг грид ADOQuery?


1-1095773926
hawkins
2004-09-21 17:38
2004.10.10
две переменные TDateTime. Как узнать разницу в колличестве дней


1-1095773917
vigo
2004-09-21 17:38
2004.10.10
Если кто работал с юлианской датой...