小编Bez*_*sek的帖子

在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++-cli ×1

task ×1