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