Nekit1234007
offline
Опыт:
11,916Активность: |
call vs ExecuteFunc
Хотелось бы узнать зачем нужна функция вызова другой функции если есть оператор call?
((код jass
call FuncA() ====================== call ExecuteFunc("FuncA") )) Как подсказывает Капитан Очевидность, эти ф-ии равноценны, но первая, я так понимаю сработает быстрее. Отредактировано Nekit1234007, 29.11.2010 в 15:40. |
21.08.2009, 09:05 | #1
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
SRes
1110101000
offline
Опыт:
9,997Активность: |
call проверяет на наличие вызываемой функции, а executefunc пофигист и ему плевать есть ли функция, а также
|
21.08.2009, 10:13 | #2
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
Van Damm
wait... what?
offline
Опыт:
22,268Активность: |
ExecuteFunc также вызывает функцию в новом потоке. |
21.08.2009, 11:19 | #3
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
Ranger21
I love beatiul days XD
offline
Опыт:
13,274Активность: |
ExecuteFunc можно применять во время инициализации карты для снятия нагрузки на один поток, чтобы в новом потоке делать все действия (Если в инициализации карты слишком много разных действий производится в одном потоке, то какие-то из них не будут работать). |
21.08.2009, 11:27 | #4
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
ScorpioT1000
Работаем
offline
Опыт: отключен
|
что это за бред? O_O тт |
21.08.2009, 11:39 | #5
+0/−1
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
J
expert
offline
Опыт:
48,447Активность: |
ScorpioT1000, он сказал правильно, хотя и не только для этого в целов екзекут нужен чтобы выполнить функцию в новом потоке, и все вытекающее из этого |
21.08.2009, 11:40 | #6
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
ScorpioT1000
Работаем
offline
Опыт: отключен
|
почемуто у меня все работало всегда, может это криворукость? |
21.08.2009, 11:42 | #7
+0/−1
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
J
expert
offline
Опыт:
48,447Активность: |
на каждый поток есть лимит количества выполняемых действий, если он переходится то происходит выход из потока |
21.08.2009, 11:52 | #8
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
Ranger21
I love beatiul days XD
offline
Опыт:
13,274Активность: |
ScorpioT1000, Работает всегда ведь, но есть лимит просто на количество операций в одном потоке при загрузке карты.
Наверно ты не делал больших карт, а ещё есть вариант, что ты делал все действия после инициализации карты (Загрузки карты). (Назначение переменных, создание триггеров и т.д., куча стаффа)
Я просто написал, что с помощью ExecuteFunc можно во время загрузки карты новый поток начать.
o_O Ну J меня понял... |
21.08.2009, 11:54 | #9
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
ScorpioT1000
Работаем
offline
Опыт: отключен
|
это вобще не о том, лимит там достаточно большой чтобы инициализировать все что надо я делаю так, как считаю правильно, для каждой ситуации свое решение правильней было бы сказать, что с помощью нее обычно распараллеливают инициализацию, чтобы сбалансировать ее :) но экзекут достаточно тормознутый, кстати. |
21.08.2009, 12:12 | #10
+0/−1
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
Ranger21
I love beatiul days XD
offline
Опыт:
13,274Активность: |
ScorpioT1000, Ну как я видел во всех больших картах инициализация проводится после загрузки карты (Некоторое время чёрный экран как отвлекающий манёвр и просьба подождать).
Кстати насчёт тормознутости экзекута... это точно, если его вставить куда-нибудь в инициализацию и если выполняемая функция огромная, то будет вполне заметный лаг на некоторое время. |
21.08.2009, 12:18 | #11
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
J
expert
offline
Опыт:
48,447Активность: |
ну значит ты просто не встречался с этим, я то всего 2 раза за все вемя модмейкерства встречал что это за бред? от размера функции екзекут не зависит |
21.08.2009, 12:24 | #12
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
ScorpioT1000
Работаем
offline
Опыт: отключен
|
ну смотри у нас есть 10 библиотек, у которых свои 10 функций-инициализаторов и у нас есть main в main экзекутим все 10 инитов и они "параллельно" начинают задавать свои значения(скажем, длинные бд) в 10 потоков. ScorpioT1000 добавил: хотя в принципе тут одно и тоже получается =O |
21.08.2009, 12:42 | #13
+0/−1
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
J
expert
offline
Опыт:
48,447Активность: |
ScorpioT1000, в варе потоки выполняются последовательно, а не паралельно |
21.08.2009, 12:51 | #14
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
ScorpioT1000
Работаем
offline
Опыт: отключен
|
тт я то не знал) кавычки ниочем не говорят? |
21.08.2009, 13:21 | #15
+0/−1
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
Hellfim
Новичок
offline
Опыт:
79,707Активность: |
ScorpioT1000, у меня при вызове 163 функций в потоке, он крашится. |
21.08.2009, 17:44 | #16
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
adic3x
offline
Опыт:
108,439Активность: |
главное забыли - при екзекуте можно импользовать например массив строк, и вызывать функцию по индексу |
21.08.2009, 18:01 | #17
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
PlayerDark
Coraline
offline
Опыт:
10,569Активность: |
В принципе текстмакро + экзекуте функц позволяет делать весьма любопытные вещи. К тому же с помощбю него можно вызывать функцию например из чат строки... |
21.08.2009, 18:33 | #18
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
adic3x
offline
Опыт:
108,439Активность: |
причем тут это? тем более что макросы - зло, дефайны рулят |
21.08.2009, 18:52 | #19
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
PlayerDark
Coraline
offline
Опыт:
10,569Активность: |
ADOLF, с помощью ТМ можно обьявить кучу функций и использовать как массив. |
21.08.2009, 18:58 | #20
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|