Ein Argument an die Task in C ++ / CLI übergeben?

Ich habe diesen Code für das C # in Visual Studio 2012.

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

Dies wird ausgeführtSwitchLaser method (öffentliches nichtstatisches Mitglied einer KlasseMyClass) als Task mit Argument bool on.

Ich möchte etwas Ähnliches in verwaltetem C ++ / CLI tun. Ich kann jedoch nicht herausfinden, wie eine Task ausgeführt wird, die eine Member-Methode mit einem Parameter ausführt.

Die aktuelle Lösung sieht folgendermaßen aus:

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

Implementierung vonSwitchLaserHelper Funktion:

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

Es muss eine Lösung wie in C # geben und keine Hilfsfunktionen und Member erstellen (dies ist nicht threadsicher).

Antworten auf die Frage(4)

Ihre Antwort auf die Frage