什么';s C/C++;相当于Java';异步任务

什么';s C/C++;相当于Java';异步任务,java,c++,c,Java,C++,C,在Java中有异步任务 private class AddTaskFeature extends AsyncTask<Void, Void, Void> { AddTaskFeature(String _process){ } @Override protected void onPreExecute() { } @Override protected Void doInBackground(Void... unused)

在Java中有异步任务

private class AddTaskFeature extends AsyncTask<Void, Void, Void> {
    AddTaskFeature(String _process){
    }

    @Override
    protected void onPreExecute() {
    }

    @Override
    protected Void doInBackground(Void... unused) {
    }

    @Override
    protected void onProgressUpdate(Void... values) {
    }

    @Override
    protected void onPostExecute(Void unused) {
    }
}
私有类AddTaskFeature扩展了AsyncTask{
AddTaskFeature(字符串\u进程){
}
@凌驾
受保护的void onPreExecute(){
}
@凌驾
受保护的空位背景(空位…未使用){
}
@凌驾
受保护的void onProgressUpdate(void…值){
}
@凌驾
受保护的void onPostExecute(未使用的void){
}
}

这段代码的C/C++等价物是什么?

AsyncTask是由Android而不是Java提供的。在许多平台上,您可以使用pthreads执行多线程处理。在iOS上,您可以使用调度队列。你应该查一下你的平台的编程手册。

直到C++ 11没有统一的线程支持C++,更不用说更高级的代码>未来的/代码>类了。在C++11中,看一看

然而,我认为你可以在boost中找到你需要的东西。thread有一些类可以让你做你需要的事情


您将使用lambda或重写运算符()的类

没有进展,但可以提供args,工作的结果是未来的结果

auto fut = std::async( []( int a, int b ) { return a + b; }, 5, 4  );
assert( fut.get( ) == 9 );
auto fut = std::async( []() { 
  // do work
  return Result{};
} );
fut.wait( );
auto result = fut.get( );
auto fut = std::async( []( int a, int b ) { return a + b; }, 5, 4  );
assert( fut.get( ) == 9 );