Передать аргумент в задачу в C ++ / CLI?

У меня есть этот код для C # в Visual Studio 2012.

public Task SwitchLaserAsync(bool on)
{
   return Task.Run(new Action(() => SwitchLaser(on)));
}

Это выполнитSwitchLaser метод (открытый нестатический член классаMyClass) как задание с аргументом bool on.

Я хотел бы сделать нечто подобное в управляемой C ++ / CLI. Но я не могу узнать, как запустить задачу, которая будет выполнять метод-член, принимающий один параметр.

Текущее решение выглядит так:

Task^ MyClass::SwitchLaserAsync( bool on )
{
    laserOn = on;   //member bool 
    return Task::Run(gcnew Action(this, &MyClass::SwitchLaserHelper));
}

РеализацияSwitchLaserHelper функция:

void MyClass::SwitchLaserHelper()
{
     SwitchLaser(laserOn);
}

Должно быть какое-то решение, как в C #, и не создавать вспомогательные функции и члены (это не потокобезопасно).

Ответы на вопрос(4)

Ваш ответ на вопрос