Как запустить метод класса в отдельном потоке?

для этого нужно создать поток, указав функцию, которую он должен выполнять:

code: #cpp
Thread^ myThread = gcnew Thread(gcnew ThreadStart(myFunction));

Указать, что он не является главным:

code: #cpp
myThread->IsBackground = true;

Запустить на выполнение:

code: #cpp
myThread->Start();

Если функция принимает параметры, то нужно действовать следующим образом: объявить делегат (как глобальную переменную):

code: #cpp
delegate void DelegateForМyFunction(/* Список переменных функции */);

Создать переменную делегата и запустить функцию на выполнение:

code: #cpp
DelegateForMyFunction^ DoМyFunction = gcnew DelegateForМyFunction(МyFunction);
DoМyFunction(/* Список переменных функции */);

В MyFunction запускать метод класса:

code: #cpp
void МyFunction(/* Список переменных функции */)
{
    //Запустить метод класса
}

автор: novikov.ea

Поделиться:

Похожие статьи: