Pasar un argumento a la tarea en C ++ / CLI?

Tengo este código para el C # en Visual Studio 2012.

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

Esto ejecutaráSwitchLaser Método (miembro público no estático de una claseMyClass) como una tarea con argumento bool en.

Me gustaría hacer algo similar en C ++ / CLI administrado. Pero no puedo descubrir de ninguna manera cómo ejecutar una tarea, lo que ejecutará un método miembro tomando un parámetro.

La solución actual es así:

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

Implementación deSwitchLaserHelper función:

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

Debe haber alguna solución como en C # y no crear funciones y miembros de ayuda (esto no es seguro para subprocesos).

Respuestas a la pregunta(4)

Su respuesta a la pregunta