Вниз
Скачать: 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 вся ветка

Скачать: CL | DM;



Память: 0.46 MB
Время: 0.02 c
14-1095832509
Mrd
2004-09-22 09:55
2004.10.10
Исходник браузера


4-1094727071
Erik1
2004-09-09 14:51
2004.10.10
Организация TimeOut для Overlapped чтения из com порта.


14-1095765710
Layner
2004-09-21 15:21
2004.10.10
Прошу помочь по ценам на такую программу! (распределенный склад)


14-1095989273
Думкин
2004-09-24 05:27
2004.10.10
С днем рождения! 24 сентября


14-1095859186
kaZaNoVa
2004-09-22 17:19
2004.10.10
Скорость доступа к диску, или как ускорить HARD




   Наверх