XGM Forum
Сайт - Статьи - Проекты - Ресурсы - Блоги

Форуме в режиме ТОЛЬКО ЧТЕНИЕ. Вы можете задать вопросы в Q/A на сайте, либо создать свой проект или ресурс.
Вернуться   XGM Forum > Warcraft> Барахолка
Ник
Пароль
Войти через VK в один клик
Сайт использует только имя.

Ответ
 
Faion
Noblesse Oblige
offline
Опыт: 30,395
Активность:
Идея альтернативного экзекута функции с задержкой.
Вчера пришла оригинальная идея, которая может оказаться полезной не только мне.
Это не готовое решение, просто концепция!
Данная концепция может вам помочь разработать высокопроизводительный узел для вашей системы.
Существенный прирост будет в случае если вы где то используете множество вызовов однотипного действия с задержкой, для которых вы либо создаете тонны индивидуальных таймеров, или же один таймер, с индивидуальными счетчиками и проверками истечения времени.
» код
library TimerCore
{

    public int Timer = 0;
    public string array Actions
    
    public void AddAction(int delay, string actionName)
    {
        if(Timer+delay > 8192)
        {
            Actions[Timer+delay - 8192] = actionName;
        }
        else
        {
            Actions[Timer+delay] = actionName;
        }
    }
    
    callback onInit()
    {
        TimerStart(CreateTimer(), 1.0, true, lambda void(){
            Timer++;
            if(Timer > 8192)
            {
                Timer = 0;
            }
            if(Actions[Timer] != null)
            {
                ExecuteFunc(Actions[Timer]);
                Actions[Timer] = null;
	        // тут может быть вызов конкретной функции с передачей значений из массива или же описание действия
            }
        })
    }
}
PS: для реального использования я рекомендовал бы прикрутить к примеру стек, так же отслеживание кол-во тасков, что бы останавливать таймер в случае если кол-во тасков == 0.
Старый 20.06.2013, 21:06
Faion
Noblesse Oblige
offline
Опыт: 30,395
Активность:
Как мне подсказали гуру, этот метод называется "вытесняющая многозадачность", что то подобное есть в реализации ОС win XP++.
Старый 21.06.2013, 20:23
Fakov
Viva la Fa
offline
Опыт: 102,058
Активность:
и ты это предлагаешь осознать тем, кто спрашивает как загрузить картинку на форум или сделать больше 100 уровня у героя???
Fakov добавил:
в меру своего понимая затеи я плюсанул
Старый 24.06.2013, 10:15
Faion
Noblesse Oblige
offline
Опыт: 30,395
Активность:
Fakov, ну... я на них и не рассчитывал, материал ориентирован на хайлвл жассеров :) Плюс я специально скинул "облегченную" версию, что бы было проще понять саму концепцию :)
Старый 24.06.2013, 11:29
J64_

offline
Опыт: 4,724
Активность:
Это какбы итак понятно, к тому же у вас будут ошибки при одних и тех же задержках, но с другими действиями. Это можно было решить с помощью boolexpr и And\Or.
Старый 25.06.2013, 03:21
DioD

offline
Опыт: 45,134
Активность:
ничего лучше карусели никто ни разу не придумал и никогда не придумает "конструкция" ниачём и просто оверхип
Старый 25.06.2013, 14:37
Faion
Noblesse Oblige
offline
Опыт: 30,395
Активность:
Judycaster64,
Для особо одаренных:
Faion:
Это не готовое решение, просто концепция!
Faion:
для реального использования я рекомендовал бы прикрутить к примеру стек, так же отслеживание кол-во тасков
Что не ясно?
DioD:
ничего лучше карусели никто ни разу не придумал и никогда не придумает "конструкция" ниачём и просто оверхип
Карусель возможна если у тебя может быть несколько исполнительных потоков. Надеюсь из этого ты понял почему ты нуб и опозорился? :)
Старый 25.06.2013, 15:23
DioD

offline
Опыт: 45,134
Активность:
в варкрафте не может быть нескольких потоков, ктото нуб и опозорился.
Старый 25.06.2013, 19:53
Faion
Noblesse Oblige
offline
Опыт: 30,395
Активность:
DioD:
в варкрафте не может быть нескольких потоков, ктото нуб и опозорился.
Молодец ты понял в чем ты не прав, я уж думал тебе придется и это разъяснять.
Старый 25.06.2013, 20:15
Ответ

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы можете скачивать файлы

BB-коды Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход



Часовой пояс GMT +3, время: 04:16.