Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
что где и как в THread
|
|||
|---|---|---|---|
|
#18+
при запуске приложения отдельным потоком считываю данные из одной базы и пишу их после обработки в другую время от времени при выходе поток всё ещё висит до перезапуска машины как правильно запустить а потом убить поток всё делал по книжному вроде должно работать как надо но видимо необходим практический совет того кто уже пощупал эти потоки жду............................. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.10.2003, 15:31 |
|
||
|
что где и как в THread
|
|||
|---|---|---|---|
|
#18+
Неужели никто не использует THRead. Просветите если есть что то получше ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.10.2003, 10:12 |
|
||
|
что где и как в THread
|
|||
|---|---|---|---|
|
#18+
Потоку нужно дипломатично предложить завершиться. А его код должен быть таким, чтобы в любой момент это предложение принять и корректно обработать. В самом крайнем случае можно использовать TerminateThread. Но почему это лучше не делать описано в MSDN. Правда M$ иногда и сам ее использует, например в SQL сервере. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.10.2003, 10:25 |
|
||
|
что где и как в THread
|
|||
|---|---|---|---|
|
#18+
Еще хочу добавить, что никто еще не отменял пошаговую отладку с одновременным поглядыванием на закдадку TaskManager'а, где присутствует информация о кол-ве потоков, процессов, хэндлов и т.д. на ТЕКУЩИЙ момент. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.10.2003, 10:35 |
|
||
|
что где и как в THread
|
|||
|---|---|---|---|
|
#18+
причину нашёл но как обойти ? в 1 модуле создание потока во 2 сам поток в 3 функции которые поток вызывает пока крутится в одной из функций цикл вертится иногда достаточно долго поток висит изза того что цикл не завершён а вертется он может и 15 минут логично сделать так while ... do begin if terminated then break; ... ... end; но эта сволочь говорит что не знает что за terminated такой вполне логично было бы прописать в uses имя unit 'a с потоком прописываю кричит circular unit reference что то я не понимаю в этой жизни ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.10.2003, 10:48 |
|
||
|
что где и как в THread
|
|||
|---|---|---|---|
|
#18+
АУУУУУУУУ знатоки вы где ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.10.2003, 11:57 |
|
||
|
что где и как в THread
|
|||
|---|---|---|---|
|
#18+
1. код, где создается-вызывается тред 2. код треда ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.10.2003, 08:21 |
|
||
|
что где и как в THread
|
|||
|---|---|---|---|
|
#18+
в смысле в такой последовательности переписать модули ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.10.2003, 10:07 |
|
||
|
что где и как в THread
|
|||
|---|---|---|---|
|
#18+
в смысле не имея перед глазами кода, разговаривать не о чем :) код? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.10.2003, 10:40 |
|
||
|
что где и как в THread
|
|||
|---|---|---|---|
|
#18+
Main procedure TfrmMain.BtnReadClick(Sender: TObject); var SQLQuery: String; DataTime: TDateTime; begin Screen.Cursor := crHourGlass; ... ... T1 := THBase.Create(false); Screen.Cursor := crDefault; end; THRead procedure THBase.Execute; var i: integer; begin SetName; FreeOnTerminate := true; ReadBase(ReadIni('Path', 'FileName'), ReadIni('Path', 'BasePath')); end; ну и в ReadBase читаю и обрабатываю записи ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.10.2003, 11:11 |
|
||
|
что где и как в THread
|
|||
|---|---|---|---|
|
#18+
интересовал кусок кода, где вызывается Execute... да ладно... рекомендации в общем случае такие: в треде определяем процедуру с таким кодом : while not terminated do yourthread.Execute в основном потоке там, где Вам надо, уничтожаем тред следующим образом: yourthread.Terminate; yourthread.WaitFor; ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.10.2003, 12:25 |
|
||
|
что где и как в THread
|
|||
|---|---|---|---|
|
#18+
Не понял а при T1 := THBase.Create(false); что вызывается я же его сразу запускаю и потом у меня проблема прервать цикл чтобы поток мог спокойно умереть потому что если я вышел из приложения то надобности ждать пока он завершится нет while ... do begin if terminated then break; ... ... end; но эта сволочь говорит что не знает что за terminated такой вполне логично было бы прописать в uses имя unit'a с потоком прописываю кричит circular unit reference Вот где собака порылась !!! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.10.2003, 13:19 |
|
||
|
что где и как в THread
|
|||
|---|---|---|---|
|
#18+
1. Секций uses - 2 в каждом юните 2. метод terminate вообще вызывается? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.10.2003, 13:44 |
|
||
|
что где и как в THread
|
|||
|---|---|---|---|
|
#18+
THRead вызывается во 2 секции uses модуля Main terminate а тем более free не вызывается всё тормозит на suspend поток ждёт пока цикл мать его кончит слов нет уже писать чего делать ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.10.2003, 13:51 |
|
||
|
что где и как в THread
|
|||
|---|---|---|---|
|
#18+
Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.10.2003, 09:18 |
|
||
|
|

start [/forum/topic.php?fid=58&msg=32289592&tid=2116267]: |
0ms |
get settings: |
7ms |
get forum list: |
11ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
46ms |
get topic data: |
11ms |
get forum data: |
3ms |
get page messages: |
55ms |
get tp. blocked users: |
2ms |
| others: | 252ms |
| total: | 391ms |

| 0 / 0 |
