Passar um argumento para tarefa em C ++ / CLI?

Eu tenho esse código para o C # no Visual Studio 2012.

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

Isto irá executarSwitchLaser método (membro público não estético de uma classeMyClass) como uma tarefa com o argumento bool on.

Eu gostaria de fazer algo semelhante em C ++ / CLI gerenciado. Mas não consigo descobrir como executar uma tarefa, o que executará um método de membro usando um parâmetro.

A solução atual é assim:

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

Implementação deSwitchLaserHelper função:

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

Deve haver alguma solução como em C # e não para criar funções auxiliares e membros (isso não é threadsafe).

questionAnswers(4)

yourAnswerToTheQuestion