Вниз
Скачать: 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.978 c
1-1096252600
Никита
2004-09-27 06:36
2004.10.10
Работа со строками


9-1086797256
karlsn
2004-06-09 20:07
2004.10.10
ии в игре типа "генералов"


1-1096305883
sexy
2004-09-27 21:24
2004.10.10
Рэндом число из массива


3-1095235655
ksa2002
2004-09-15 12:07
2004.10.10
Проблема с QRDBText в QReport


1-1095660056
П7
2004-09-20 10:00
2004.10.10
TTreeNode.Data - как правильно использовать?




   Наверх