相关疑难解决方法(0)

在C++ 11中委派

C++ 11是否提供代理?

如果没有,在C++中做类似事情的最佳(最有效)方法是什么?Boost.Signals?FastDelegate?别的什么?

c++ delegates c++11

11
推荐指数
1
解决办法
5648
查看次数

在C++/CLI中将参数传递给任务?

我在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#中的解决方案而不是创建辅助函数和成员(这不是线程安全的).

action arguments c++-cli task

11
推荐指数
3
解决办法
5806
查看次数

标签 统计

action ×1

arguments ×1

c++ ×1

c++-cli ×1

c++11 ×1

delegates ×1

task ×1