![]()
agentex
![]() offline
Опыт:
34,834Активность: |
Уничтожение потока
Имеется такая связка ф-ий:
Код:
как известно, функция ExecuteFunc создает поток и вызывает в нем функцию которая в скобках. Я провел эксперимент и выяснил, что максимальное число потоков, создаваемое таким образом - 1386, после этого вар крашится. Эту проблему я решил поочередными вызовоми call B() и ExecuteFunc("B"). Но все же интересно - можно ли уничтожить поток когда тебе надо? (в данном случае в конце функции B). И еще вопрос - сколько максимум вызовов функций можно сделать в 1 потоке до Hit Op Limit'а? |
![]() |
#1
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
![]()
adic3x
![]() offline
Опыт:
108,439Активность: |
оператор ретунр (который также внегласно ставиться перед ендфункцион) совершает возврат в вызывающуую процедуру, если таковой нет - то поток прекращаеться
для управлением потока из другого потока стоит использовать к примеру глобальную булеану, а в управляемом потоке проверять ее состояние |
![]() |
#2
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
![]()
agentex
![]() offline
Опыт:
34,834Активность: |
ADOLF то есть в общем виде это выглядит так:
Код:
agentex добавил: или лучше сначала завершать поток, а затем создавать новый? agentex добавил: а блин ступил, если уничтожиш поток последующие строчки то не выполнятся) |
![]() |
#3
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
![]()
adic3x
![]() offline
Опыт:
108,439Активность: |
ступил, причем полностью=) в твоем примере ретурн ненужен (я писал что ендфунцтион и есть ретурн), причем внутренний поток будет являться продолжением внешнего просто напросто, там наверное цикл дб? |
![]() |
#4
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
![]()
agentex
![]() offline
Опыт:
34,834Активность: |
хм, а почему же такой лимит - 1386 этих продолжений? можно вообще отдельный поток создать?
Цитата:
втф дб? agentex добавил: ну вобщето я разрабатываю систему шифрования чисел |
|
![]() |
#5
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
![]()
Hellfim
Новичок
![]() ![]() offline
Опыт:
79,707Активность: |
agentex, дб=должно быть. Разрабатываешь систему на основе какой? Могу помочь, если надо =)
|
![]() |
#6
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
![]()
agentex
![]() offline
Опыт:
34,834Активность: |
а ну цикл я показал где, он там один.
Hellfim хм нету никакой основы.. просто надоело юзать чужую CCS и решил сделать свою системку. Впринципе кодер декодер уже готовы, ща думаю как эффективно сжимать равкоды |
![]() |
#7
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
![]()
NETRAT
![]() ![]() offline
Опыт:
83,712Активность: |
бред какой-то, единственная модель, которая позволяет контроллировать потоки в jass, аналогична событийной модели в win api (event, semaphore), то есть только через общую память - глобальные переменные. Другой поток нельзя уничтожить тогда когда тебе это хочется, Адольфег все написал... |
![]() |
#8
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
![]()
agentex
![]() offline
Опыт:
34,834Активность: |
В таком случае тема подлежит закрытию, только вы на второй вопрос ответьте про хит оп лимит |
![]() |
#9
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
![]()
NETRAT
![]() ![]() offline
Опыт:
83,712Активность: |
проверь... если через call то зависит от содержимого функции, впрочем, не более 8000 если в новом потоке - хз, думаю, что до 20000 |
![]() |
#10
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
![]()
agentex
![]() offline
Опыт:
34,834Активность: |
содержимое довольно скудно - 1 луп и несколько ифов и арифм. действий |
![]() |
#11
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
![]()
NETRAT
![]() ![]() offline
Опыт:
83,712Активность: |
новый поток = новый лимит операций, старый поток = операции добавляются к уже выполненным
посмотри вот это сообщение http://xgm.guru/forum/showpost.php?p=464300&postcount=12 мой личный опыт тестирования лимита, там количество вызовов "пустой" функции ограничивается 150000 |
![]() |
#12
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
![]()
adic3x
![]() offline
Опыт:
108,439Активность: |
выстрелить себе в ногу
жасс: вы пытаетесь получить хендл ноги через рб, но в это время движок завершает процес. в следующий раз при более осторожном вызове рб фции из нового потока вы узнаете что нога уже простреленна движком вара. |
![]() |
#13
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|