C ++委托? (通过功能运行)

时间:2018-09-26 10:39:54

标签: c++ visual-studio

所以我对c ++还是很陌生,我来自c#,所以这是一个很大的挑战,我在c#中相当简单但在c ++中似乎很痛苦

所以我有一个TASK类,它具有一个称为ExecuteTask();

的函数
class Task
{
public:
    virtual void *ExecuteTask(void* foo);
};

此任务被称为,但是添加到计划的线程池中

我想要做的就是这样

    Task *taskit = new Task();
    taskit->ExecuteTask(new void {

});

在C#中,我知道这很简单,因为您有委派,可以使用类似+= delegate { // Do something }的方式

我正在将Visual Studio 2017与MS标准库和C ++一起使用

1 个答案:

答案 0 :(得分:0)

我想使用

来获得std :: function的解决方案
class Task
{
public:
     std::function<void(void)> ExecuteTask;
};

然后,当我使用它时,我会使用:

Task *taskit = new Task();
taskit->ExecuteTask = [&]
{
    //Do something
};