Как реализовать многопоточность в пустом проекте CLR (.NET Framework)?

#c #multithreading #user-interface #while-loop #clr

Вопрос:

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

Это мой текущий код:

 private: System::Void checkBox1_CheckedChanged(System::Object^ sender, System::EventArgs^ e) {
    const float newValue = 1000;
    while (checkBox1->Checked)
    {
        mem::PatchEx((BYTE*)healthAddr, (BYTE*)amp;newValue, sizeof(newValue), hProcess);
        Sleep(25);
    }
 

Если флажок 1 установлен, постоянно пишите на этот адрес, в противном случае ничего.
Но, конечно, это приводит к зависанию приложения, я много изучал многопоточность в проекте CLR, но я не могу найти никакой полезной информации, даже ни одного руководства по использованию CLR.

Если бы кто-нибудь из вас мог дать мне руководство, курс, любую информацию по этому поводу, это действительно помогло бы.