|
|
|
Вызов Start для приостановленного потока
|
|||
|---|---|---|---|
|
#18+
wadmandefecatorпропущено... давай обёртку, мне надо Дак тут всё https://github.com/wadman/wthread я забыл, где оно паслось ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.11.2018, 09:20 |
|
||
|
Вызов Start для приостановленного потока
|
|||
|---|---|---|---|
|
#18+
wadmanПредлагаю взять мою обертку и не париться. надеюсь, на D2007 взлетит. Спасибо :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.11.2018, 09:24 |
|
||
|
Вызов Start для приостановленного потока
|
|||
|---|---|---|---|
|
#18+
ДокwadmanПредлагаю взять мою обертку и не париться. надеюсь, на D2007 взлетит. Спасибо :) Летает и на D7 и на 10.x и на маках, убунтах всяких. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.11.2018, 09:27 |
|
||
|
Вызов Start для приостановленного потока
|
|||
|---|---|---|---|
|
#18+
wadmanДокпропущено... надеюсь, на D2007 взлетит. Спасибо :) Летает и на D7 и на 10.x и на маках, убунтах всяких. хорошо наговнокодил, молодец ! Щаз буду юзать ! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.11.2018, 09:28 |
|
||
|
Вызов Start для приостановленного потока
|
|||
|---|---|---|---|
|
#18+
defecatorwadmanпропущено... Летает и на D7 и на 10.x и на маках, убунтах всяких. хорошо наговнокодил, молодец ! Щаз буду юзать ! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.11.2018, 09:34 |
|
||
|
Вызов Start для приостановленного потока
|
|||
|---|---|---|---|
|
#18+
ДокНаткнулся на непонятки в DX10.2.3_CE: если создать доп.поток приостановленным, например так: Код: pascal 1. 2. 3. 4. 5. 6. 7. 8. 9. а затем запустить рекомендуемой процедурой Start, то получаем отлуп Код: pascal 1. Старый добрый Resume, показываемый в Code Insight серым цветом (deprecated же), запускает поток корректно. Я что-то пропустил? я вообще не вижу смысла в твоём коде, делай просто Код: pascal 1. 2. 3. 4. 5. 6. будет то же самое ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.11.2018, 10:52 |
|
||
|
Вызов Start для приостановленного потока
|
|||
|---|---|---|---|
|
#18+
defecatorкак человек, варивший трубы, скажу, что тут поработал Мастер мне когда на хате ремонт доделали и я уже заезжал, обнаружилось что дурит смеситель с термостатом в ванной, не работает, кипяток льет. выяснилось что монтажники-джамшуты кроме всего прочего и подводку в этом месте перепутали, а есть лишь небольшое ревизионное окошко и думал что придется ломать плитку, не успев заехать. благо спец именно по сантехнике сумел перепаять прям через эту маленькую дверцу ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.11.2018, 11:55 |
|
||
|
Вызов Start для приостановленного потока
|
|||
|---|---|---|---|
|
#18+
wadman, Как раз собирался искать :) Спасибо! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.11.2018, 14:23 |
|
||
|
Вызов Start для приостановленного потока
|
|||
|---|---|---|---|
|
#18+
kealon(Ruslan)я вообще не вижу смысла в твоём коде, делай просто Код: pascal 1. 2. 3. 4. 5. 6. будет то же самое В моём коде это имеет смысл. На, пробуй свои советы на практике :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.11.2018, 14:35 |
|
||
|
Вызов Start для приостановленного потока
|
|||
|---|---|---|---|
|
#18+
Док В моём коде это имеет смысл. На, пробуй свои советы на практике :) Как я понимаю, неважно, создаем мы так Код: pascal 1. или же так Код: pascal 1. поток в конструкторе TThread.Create создается приостановленным и стартует (даже если в конструкторе наследника используется inherited Create(False) ) только после выполнения конструктора - в процедуре AfterConstruction. Поэтому все операторы и процедуры в конструкторе класса-наследника в любом случае выполнятся до того, как стартует поток. Может я ошибаюсь, конечно, но по-моему это так. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.11.2018, 15:09 |
|
||
|
Вызов Start для приостановленного потока
|
|||
|---|---|---|---|
|
#18+
s62, s62 и стартует (даже если в конструкторе наследника используется inherited Create(False) ) только после выполнения конструктора - в процедуре AfterConstruction Не даже если, а просто если. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.11.2018, 15:26 |
|
||
|
Вызов Start для приостановленного потока
|
|||
|---|---|---|---|
|
#18+
ДокНаткнулся на непонятки в DX10.2.3_CE: если создать доп.поток приостановленным, например так: Код: pascal 1. 2. 3. 4. 5. 6. 7. 8. 9. а затем запустить рекомендуемой процедурой Start, то получаем отлуп Код: pascal 1. Старый добрый Resume, показываемый в Code Insight серым цветом (deprecated же), запускает поток корректно. Я что-то пропустил?Правильно тебя посылает. Скорей всено, Start выполняет запуск потока, который запрещен в конструкторе. Передай False в параметр Suspended - и всё, никаких Resume не надо будет и все будет хорошо. Suspended нужно для того, чтобы после конструктора но до запуска потока что-то изменить в объекте потока. Не твой случай. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.11.2018, 15:51 |
|
||
|
Вызов Start для приостановленного потока
|
|||
|---|---|---|---|
|
#18+
wadmanВот минимальный поток с доп. функционалом wadman Код: pascal 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. Брррр. Надо хоть так: Код: pascal 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.11.2018, 15:55 |
|
||
|
Вызов Start для приостановленного потока
|
|||
|---|---|---|---|
|
#18+
YuRock, А еще желательно в деструкторе проверять на Assigned( FEvent ), если в конструкторе возможны исключения. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.11.2018, 15:57 |
|
||
|
Вызов Start для приостановленного потока
|
|||
|---|---|---|---|
|
#18+
YuRockСкорей всено, Start выполняет запуск потока, который запрещен в конструкторе. Абсолютно верно. На Tokyo Start разрешен только в основном потоке, а вот в Лазарусе - везде(и в конструкторе, и в основном потоке). И, теперь вижу, что это правильно: ибо, если создать поток так Код: pascal 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. , но "забыть" стартануть его, то код в основном потоке продолжится дальше без выполнения fThread.Execute. А вот это уже фэйл :) YuRockПередай False в параметр Suspended - и всё, никаких Resume не надо будет и все будет хорошо. Я это делаю намеренно: мне нужно быть точно уверенным, что некоторые переменные будут инициализированы в конструкторе ДО запуска доп.потока ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.11.2018, 21:58 |
|
||
|
Вызов Start для приостановленного потока
|
|||
|---|---|---|---|
|
#18+
Вообще не понимаю смысла приостановленных нитей. Они ж нужны чтобы выполнить работу в определенный момент времени. А если надо пауза, то это дело объектов синхронизации. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.11.2018, 22:06 |
|
||
|
Вызов Start для приостановленного потока
|
|||
|---|---|---|---|
|
#18+
ДокЯ это делаю намеренно: мне нужно быть точно уверенным, что некоторые переменные будут инициализированы в конструкторе ДО запуска доп.потока Независимо от параметра - ВСЕ переменные будут инициализированы в конструкторе ДО запуска потока. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.11.2018, 22:44 |
|
||
|
Вызов Start для приостановленного потока
|
|||
|---|---|---|---|
|
#18+
alekcvpВСЕ переменные будут инициализированы в конструкторе ДО запуска потока это описано в доке или просто твоя уверенность? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.11.2018, 23:23 |
|
||
|
Вызов Start для приостановленного потока
|
|||
|---|---|---|---|
|
#18+
Я чуть выше неточно выразился: мне инициализировать некоторые переменные ДО запуска, но не только в конструкторе (например, frmSplash в коде выше). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.11.2018, 23:40 |
|
||
|
Вызов Start для приостановленного потока
|
|||
|---|---|---|---|
|
#18+
ДокalekcvpВСЕ переменные будут инициализированы в конструкторе ДО запуска потока это описано в доке или просто твоя уверенность?Да, но ищи сам. Главное, это описано в исходниках класса TThread - запуск потока происходит в AfterConatruction. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.11.2018, 23:55 |
|
||
|
Вызов Start для приостановленного потока
|
|||
|---|---|---|---|
|
#18+
ДокЯ чуть выше неточно выразился: мне инициализировать некоторые переменные ДО запуска, но не только в конструкторе (например, frmSplash в коде выше).Тогда да, надо. Но тогда и Start должен сработать. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.11.2018, 23:56 |
|
||
|
Вызов Start для приостановленного потока
|
|||
|---|---|---|---|
|
#18+
YuRockэто описано в исходниках класса TThread - запуск потока происходит в AfterConatruction в справке тоже об этом сказано. По коду, оба метода: и Start, и AfterConstruction вызывают InternalStart, только с разными параметрами. Так что, про "все в конструкторе инициализируется ДО" Execute доп.потока - это я просто сам не догадался :) Познавательно, однако... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.11.2018, 00:49 |
|
||
|
|

start [/forum/topic.php?fid=58&msg=39727300&tid=2040173]: |
0ms |
get settings: |
10ms |
get forum list: |
17ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
157ms |
get topic data: |
8ms |
get forum data: |
4ms |
get page messages: |
60ms |
get tp. blocked users: |
1ms |
| others: | 239ms |
| total: | 502ms |

| 0 / 0 |
