|
|
|
Ещё вопрос. TThread в Berlin 10.2
|
|||
|---|---|---|---|
|
#18+
Народ. вопрос как принудительно пребить поток из главного приложения. создаю поток по нажатию кнопки. MyThread.Create(false); а по нажатию другой надо его принудительно прибить. на MyThread.Terminate; ругается. типа не знаю что енто такое. хотя в TThread.pas FTerminate присутствует. опятьже если можно - на пальцах. времени мало разбиратся. Помню на Delphi 7 делал. а в берлине ругается.... заодно еще вопрос можноли в поток передать данные при его создании. типа как procedure(x, y : word); ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.08.2020, 23:15 |
|
||
|
Ещё вопрос. TThread в Berlin 10.2
|
|||
|---|---|---|---|
|
#18+
st74 MyThread.Create(false); Прямо так создается экземпляр класса? Из переменной? Придется либо привести полный код, либо нанять программиста. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.08.2020, 23:54 |
|
||
|
Ещё вопрос. TThread в Berlin 10.2
|
|||
|---|---|---|---|
|
#18+
st74 заодно еще вопрос можноли в поток передать данные при его создании. типа как procedure(x, y : word); Можно, разрешаю ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.08.2020, 00:04 |
|
||
|
Ещё вопрос. TThread в Berlin 10.2
|
|||
|---|---|---|---|
|
#18+
st74вопрос как принудительно пребить поток из главного приложения. Ответ: никак. Ответ для ищущих геморроя: TerminateThread(). st74времени мало разбиратся. Тогда забей на TThread, используй BeginThread. С одной функцией разобраться быстрее, чем с целым классом. st74еще вопрос можноли в поток передать данные при его создании. Можно, разрешаю. Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.08.2020, 00:21 |
|
||
|
Ещё вопрос. TThread в Berlin 10.2
|
|||
|---|---|---|---|
|
#18+
сори. отвлекают. привожу код. unit Unit2; interface uses System.Classes, System.SysUtils, unit1; type MyThread = class(TThread) private x2 : uint32; enablet : boolean; procedure mpstat; procedure mpstart; procedure mpend; procedure Tstop(inTS : boolean); { Private declarations } protected procedure Execute; override; public end; implementation ну и далее. в Form1 по нажатию кнопки выполняется MyThread.Create(false); ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.08.2020, 00:23 |
|
||
|
Ещё вопрос. TThread в Berlin 10.2
|
|||
|---|---|---|---|
|
#18+
st74 Помню на Delphi 7 делал Врёшь. ... "Прибить" - нельзя. Код нити должен завершиться сам: либо по окончании выполнения задачи, либо по внешнему сигналу - получив сообщение, определив состояние флага и т.п. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.08.2020, 02:16 |
|
||
|
Ещё вопрос. TThread в Berlin 10.2
|
|||
|---|---|---|---|
|
#18+
st74 в Form1 по нажатию кнопки выполняется MyThread.Create(false); Т.е. созданный поток Вы не сохраняете? Тогда единственный способ с ним взаимодействовать - глобальная переменная, что плохо. Про "тайные" соглашения о наименованиях типов и переменных хорошо бы ознакомиться. Здраво: TMyThread=class(TThread) .... x:=TMyThread.Create(false) После этого можно что-то делать, например: x.Terminate; Ректальный способ: with TMyThread.Create(true) do begin FreeOnTerminate:=true; Resume; end; В TMyThread.Execute проверять if MyGlobalTerminateVar then exit; после установки MyGlobalTerminateVar в true, все потоки должны завершиться и освободиться. Но это плохой способ. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.08.2020, 07:07 |
|
||
|
Ещё вопрос. TThread в Berlin 10.2
|
|||
|---|---|---|---|
|
#18+
st74 заодно еще вопрос можноли в поток передать данные при его создании. типа как procedure(x, y : word); для этого надо попытаться почитать System.Classes, найти там страшные вещи типа TAnonymousThread и почитать, как оно сделано. Потом можно вспомнить\почитать про общие поля\пропы класса, и их изменение снаружи. А TThread - это тоже класс, да. Потом еще много чего можно почитать... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.08.2020, 09:37 |
|
||
|
Ещё вопрос. TThread в Berlin 10.2
|
|||
|---|---|---|---|
|
#18+
Ну отчего же? глобальная переменная - вполне себе способ выставить флаг завершения работы потока. А еще есть Event и Mutex, состояние которых можно отслеживать для прекращения работы ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.08.2020, 09:56 |
|
||
|
Ещё вопрос. TThread в Berlin 10.2
|
|||
|---|---|---|---|
|
#18+
del ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.08.2020, 18:24 |
|
||
|
Ещё вопрос. TThread в Berlin 10.2
|
|||
|---|---|---|---|
|
#18+
ъъъъъ Код нити должен завершиться сам: либо по окончании выполнения задачи, либо по внешнему сигналу - получив сообщение, определив состояние флага и т.п сам так делаю, когда лень городить огород Код: pascal 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.08.2020, 18:25 |
|
||
|
Ещё вопрос. TThread в Berlin 10.2
|
|||
|---|---|---|---|
|
#18+
Док, А чем Terminated вам не угодил? Почему его не проверять? Ведь еще меньше огорода городить. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.08.2020, 18:29 |
|
||
|
Ещё вопрос. TThread в Berlin 10.2
|
|||
|---|---|---|---|
|
#18+
sann-x А чем Terminated вам не угодил? Почему его не проверять? Ведь еще меньше огорода городить. Я на Лазаре кодю, там есть аналогичное Код: pascal 1. но оно ReadOnly, меняет значение посредством метода Terminate. Не помню уже, но мне этот способ не понравился. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.08.2020, 18:39 |
|
||
|
Ещё вопрос. TThread в Berlin 10.2
|
|||
|---|---|---|---|
|
#18+
Док, Дак в том-то и суть. Чтобы завершить трид, вызывай Terminate (этот метод только Terminated в true ставит). А в самом потоке смотри уже встроенный флаг Terminated. И лазарь здесь не при чем. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.08.2020, 22:00 |
|
||
|
Ещё вопрос. TThread в Berlin 10.2
|
|||
|---|---|---|---|
|
#18+
Я вообще не понимаю, ради чего оформлять нити в форму классов. Автор базового класса TThread сотворил огромную медвежью услугу новичкам. Копируют на манер обезьян примеры из архангельских и фароновых, и всё. Сплошь и рядом "проблемы" - "поток завис", "прибить поток". Или обычный паттерн: "создать поток, запустить и ждать его завершения" - нафига? Тот случай, когда инкапсуляция вредна. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.08.2020, 22:12 |
|
||
|
Ещё вопрос. TThread в Berlin 10.2
|
|||
|---|---|---|---|
|
#18+
ъъъъъ Я вообще не понимаю, ради чего оформлять нити в форму классов. Автор базового класса TThread сотворил огромную медвежью услугу новичкам. Копируют на манер обезьян примеры из архангельских и фароновых, и всё. Сплошь и рядом "проблемы" - "поток завис", "прибить поток". Или обычный паттерн: "создать поток, запустить и ждать его завершения" - нафига? Тот случай, когда инкапсуляция вредна. TThread очень удобный класс для простой работы с потоками Но для того, чтобы его использовать, надо понимать, как работают потоки, да и вообще что это за зверь ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.08.2020, 22:53 |
|
||
|
Ещё вопрос. TThread в Berlin 10.2
|
|||
|---|---|---|---|
|
#18+
defecator, TThread - квадратное колесо: для реализации самого мелкого функционала требуется прибегать к сабклассингу. И - практически все новички используют его, не понимая, что делают, это грустная статистика. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.08.2020, 23:02 |
|
||
|
Ещё вопрос. TThread в Berlin 10.2
|
|||
|---|---|---|---|
|
#18+
ъъъъъ не понимая, что делают Все остальное бла-бла ... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.08.2020, 23:11 |
|
||
|
Ещё вопрос. TThread в Berlin 10.2
|
|||
|---|---|---|---|
|
#18+
sann-x И лазарь здесь не при чем. мне лень спорить. Я сделал свойство, которое можно менять напрямую без всяких прокладок-методов, объяснил - почему. А как там правильно по феншую, мне все равно. Извини :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.08.2020, 23:48 |
|
||
|
Ещё вопрос. TThread в Berlin 10.2
|
|||
|---|---|---|---|
|
#18+
Dmitry Arefiev ъъъъъ не понимая, что делают Все остальное бла-бла ... Код: pascal 1. или Код: pascal 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. ? - только с наследниками TThread по понятным причинам еще и обращаться надо "с пониманием". ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.08.2020, 00:18 |
|
||
|
Ещё вопрос. TThread в Berlin 10.2
|
|||
|---|---|---|---|
|
#18+
st74TThread в Berlin 10.2 Будьте точными 10.2 не Berlin, а Tokio ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.08.2020, 05:20 |
|
||
|
Ещё вопрос. TThread в Berlin 10.2
|
|||
|---|---|---|---|
|
#18+
ъъъъъ, Да есть такое - для новичков трид не просто дается. Некоторые, например, не понимая, как класс работает, изобретают колесо и внедряют свой механизм завершения трида. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.08.2020, 06:58 |
|
||
|
Ещё вопрос. TThread в Berlin 10.2
|
|||
|---|---|---|---|
|
#18+
sann-x Некоторые, например, не понимая, как класс работает а некоторые, компенсируя какие-то свои застарелые комплексы, начинают менторствовать на пустом месте и меряться пиписьками, привычно уводя тему в оффтоп. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.08.2020, 08:05 |
|
||
|
Ещё вопрос. TThread в Berlin 10.2
|
|||
|---|---|---|---|
|
#18+
Сейчас добавилась куча сахара типа анонимного треда с лямбдой в качестве параметра. ъ*5 должен быть доволен. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.08.2020, 10:30 |
|
||
|
Ещё вопрос. TThread в Berlin 10.2
|
|||
|---|---|---|---|
|
#18+
Народ спасибо за правильный пинок в нужную сторону. как говорится слона то я и не приметил. просто для "помощника" написал код в качестве примера - думал сам все поймет..... в итоге свой собстенный склероз... добавился на ситуацию. хорошо обыгранную в фильме "Формула любви" когда карету чинить надо было. - За сколько починишь? - да за пол дня. - А если за два? - НУ если постаратся........ - А за неделю? - НЕ ну барнин. тут помощники нужны. Сам не справлюсь...... склероз прошел. сейчас пишу менеджер потоков. Но всем большое спасибо!!!!!!!!!!! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.08.2020, 12:47 |
|
||
|
|

start [/forum/topic.php?fid=58&msg=39993175&tid=2038023]: |
0ms |
get settings: |
9ms |
get forum list: |
15ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
191ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
88ms |
get tp. blocked users: |
2ms |
| others: | 238ms |
| total: | 566ms |

| 0 / 0 |
