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