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).