Вопрос Многопоточность и отрисовка функции из цикла

На самом деле я Zodiak
Участник
Статус
Онлайн
Регистрация
22 Дек 2020
Сообщения
1,003
Реакции[?]
180
Поинты[?]
67K
Есть два потока
itemthread и mainthread
в Mainthread отрисовка, оверлей, имуги и лёгкие функции
itemthread предназначен для большого цикла


C++:
void Itemthread()
{
    while (!GetAsyncKeyState(Globals::killKey))
    {
        for (int i = 0; i < 16000; i++)
        {
            BaseEntity pEntity(i);
            if (MenuSettings::Itemglow301)
                Modules::Itemglow(pEntity);
        }
        std::this_thread::sleep_for(1ms);
    }

}

Вот функция которая вызывается

C++:
void r301()
    {
    
        uint64_t viewRenderer = Driver::rpm<uint64_t>(Globals::modBase + OFFSET_RENDER);
        uint64_t viewMatrix = Driver::rpm<uint64_t>(viewRenderer + OFFSET_MATRIX);
        Matrix m = Driver::rpm<Matrix>(viewMatrix);

        int itemid = Driver::rpm<int>(Entity + 0x16b8);
        Vector3 Origin = Driver::rpm<Vector3>(Entity + OFFSET_ORIGIN);
        Vector3 OriginPos = Origin.ScreenPosition(m);

        
        if (itemid == 69)
        {
            DrawNewText(OriginPos.x, OriginPos.y, &blue, "R301");
        }
}
Как мне в одном потоке заставить цикл выполняться, а в другом отрендерить DrawNewText ?
 
Начинающий
Статус
Оффлайн
Регистрация
13 Апр 2022
Сообщения
26
Реакции[?]
12
Поинты[?]
2K
Как мне в одном потоке заставить цикл выполняться, а в другом отрендерить DrawNewText ?
C++:
int item_id; //объявляешь где нибудь над потоком с циклом entity или что у тебя там

while_thread()
{
    //записываем в созданные переменные данные из цикла
    item_id = mem_read(); //something...
}

other_thread()
{
    if(item_id == 69) //отправляем их в другой поток
        DrawNewText...
}
Также с остальными функциями, переменными и аргументами
 
На самом деле я Zodiak
Участник
Статус
Онлайн
Регистрация
22 Дек 2020
Сообщения
1,003
Реакции[?]
180
Поинты[?]
67K
C++:
int item_id; //объявляешь где нибудь над потоком с циклом entity или что у тебя там

while_thread()
{
    //записываем в созданные переменные данные из цикла
    item_id = mem_read(); //something...
}

other_thread()
{
    if(item_id == 69) //отправляем их в другой поток
        DrawNewText...
}
Также с остальными функциями, переменными и аргументами
А если я в цикле объявю переменную?
 
Начинающий
Статус
Оффлайн
Регистрация
13 Апр 2022
Сообщения
26
Реакции[?]
12
Поинты[?]
2K
Сверху Снизу