什么';s C/C++;相当于Java';异步任务
在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)
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 );