我在 Visual Studio 2012 中有这个 C# 代码。
public Task SwitchLaserAsync(bool on)
{
return Task.Run(new Action(() => SwitchLaser(on)));
}
这将执行SwitchLaser
方法(类的公共非静态成员MyClass
)作为带有参数 bool 的任务。
我想在托管 C++/CLI 中做类似的事情。但是我无法找到如何运行任务的任何方法,该任务将执行一个采用一个参数的成员方法。
目前的解决方案是这样的:
Task^ MyClass::SwitchLaserAsync( bool on )
{
laserOn = on; //member bool
return Task::Run(gcnew Action(this, &MyClass::SwitchLaserHelper));
}
功能实现SwitchLaserHelper
:
void MyClass::SwitchLaserHelper()
{
SwitchLaser(laserOn);
}
必须有一些像 C# 这样的解决方案,而不是创建辅助函数和成员(这不是线程安全的)。