C++并发编程的一个问题

Tim_包 2012-06-20 11:46:05

#include <iostream>
#include <ppltasks.h>

using namespace std;
using namespace Concurrency;

int wmain(int argc, wchar_t argv[])
{
task<int> t([](){
wcout << "-1-" << endl;
return 4;
});

t.then([](int n){wcout << "-2-" << endl;}).then([](){wcout << "-3-" << endl; return 2;}).then([](int n){wcout << "-4-" << endl;});

t.then([](int n){wcout << "-2-" << endl;}).then([](){wcout << "-3-" << endl; return 2;}).then([](int n){wcout << "-4-" << endl;}).wait();

system("pause");
return 0;
}


在then表达式最后加入.wait()和不加有何不同?单独运行输出信息都一样,但是如果一起运行,则"-1-"只输出一次。
...全文
120 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
pengzhixi 2012-06-20
  • 打赏
  • 举报
回复
这个恐怕是与缓冲区刷新方式有关
qq120848369 2012-06-20
  • 打赏
  • 举报
回复
这么高级的语法, 路过.
Tim_包 2012-06-20
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 的回复:]
这个恐怕是与缓冲区刷新方式有关
[/Quote]
如果是你说的那样,那么为什么每次运行都一样呢?

64,646

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧