2010-09-29 2 views
1

Я знаю, что flex не поддерживает многопоточность, однако я хотел бы усомниться. У меня есть два события, которые вызывают одну и ту же функцию. Предположим, что два события происходят в один и тот же момент (или в быстрой последовательности), если обработчик будет вызываться дважды, один за другим или есть вероятность, что если функция обработчика занимает слишком много времени, чтобы выполнить один и тот же обработчик, он может начать выполнение одновременно ,Многопоточность в flex

Thnanks

ответ

1

обработчик будет вызываться дважды, один раз с каждым событием. Второй вызов (и, по сути, все приложение) будет заблокирован до тех пор, пока не вернется первый вызов.

Here - хороший обзор цикла событий - конкретно не затрагивает ваш вопрос, но это хорошая картина.

И вы не можете ошибиться с elastic racetrack.

+0

Да, обработчик будет называться дважды. Вопрос заключается в том, будет ли обработчик вызываться во второй раз только после завершения первого выполнения или есть возможность (если первое выполнение занимает время), что выполнение обработчика второй раз начинается до завершения первой руки , – Gaurav

+0

Да, это был ответ, который я искал, я не хотел, чтобы оба вызова были одновременными. Я фактически выполняю некоторый код в обработчике, и если код выполняется отлично, я устанавливаю флаг, чтобы второй вызов не выполнял тот же код снова. Этот код создавал бы ошибку, если перед установкой флага (который делается в конце) запускается второе выполнение. – Gaurav

0

Да, он всегда будет вызван дважды. Да, один из двух вызовов будет завершен до запуска другого. Если вы не делаете что-то вроде отправки события в обработчик для другого обработчика, чтобы работать, тогда все это выходит из окна! Даже тогда я верю, что первый вызов завершится, но событие, которое оно отправит, может быть разрешено до того, как произойдет второй звонок, иногда .... sorta. ;) YMMV

0

Если вы не знали, используя PixelBender, Flex может выполнять многопоточность. Помимо графики, вы можете использовать pixelbender для быстрого выполнения математических функций, которые вы можете использовать для:

Смежные вопросы