Windows 8 你什么时候工作?
我有一个std::vectorWindows 8 你什么时候工作?,windows-8,c++-cx,ppl,Windows 8,C++ Cx,Ppl,我有一个std::vector,其中有一个任务列表,可以按顺序加载,也可以不按顺序加载。我遇到了concurrency::when_调用,但不知道如何使用它 我遇到了使用调用ScenarioInput1.xaml.cpp:100的,但我不理解pair参数,以及如何使其适应我的返回值 编辑:我想做的是: struct TaskInfo { unsigned int uniqueId; concurrency::task<unsigned int&
struct TaskInfo {
unsigned int uniqueId;
concurrency::task<unsigned int> task;
};
typedef std::vector< TaskInfo > TaskList;
typedef std::vector< unsigned int > TaskReturns;
// Somewhere inside a class, tasks and finished are member variable.
TaskList tasks;
bool finished = false;
// Inside a member function of the same class as above
// Populate the tasks
concurrency::when_any( tasks.begin(), tasks.end() ).then([this](std::vector<unsigned int> ids){
for( std::vector<unsigned int>::iterator list=ids.begin; list != ids.end(); ++ids ) {
// a mutex lock would happen here
for( TaskList::iterator allTasks = tasks.begin(); allTasks != tasks.end(); ++allTasks ) {
if ( *list == allTasks->uniqueId ) { tasks.erase( allTasks ); break; }
}
// mutex unlock
if ( tasks.size() == 0 ) { finished = true; break }
}
}
// In another member function
if ( finished ) doOtherThings();
如果我想做的事情没有经过深思熟虑或效率不高,请告诉我。这是任务的最佳组合。你有一个延续,一个连接当你所有和选择当你任何 创建一个任务,当任何任务 作为参数提供成功完成 有关更多详细信息,请参阅和 例如: 任务任务[]={t1,t2,t3}; 自动任务结果=所有开始任务、结束任务时 .然后[]std::向量结果{ …相当于 t1&&t2&&t3。然后 鉴于 任务任务[]={t1,t2,t3}; 自动任务结果=任何开始任务、结束任务时 .then[]字符串结果{ …相当于 t1 | | t2 | | t3.然后
这是任务的选择组合。你有一个延续,一个全部加入,一个任意选择 创建一个任务,当任何任务 作为参数提供成功完成 有关更多详细信息,请参阅和 例如: 任务任务[]={t1,t2,t3}; 自动任务结果=所有开始任务、结束任务时 .然后[]std::向量结果{ …相当于 t1&&t2&&t3。然后 鉴于 任务任务[]={t1,t2,t3}; 自动任务结果=任何开始任务、结束任务时 .then[]字符串结果{ …相当于 t1 | | t2 | | t3.然后
Hans Passant提供的信息告诉我,如果有……那么[]需要是std::pair类型。Hans Passant提供的信息告诉我,如果有……那么[]需要是std::pair类型。我很困惑,在您引用的文件中我看不到when_any的任何用法。抱歉,似乎下载包和在线源代码略有不同。啊,整理出来了,感谢@hans passant-when_any中的参数…那么应该是std::pair