c# begininvoke为什么这么慢

毕设项目助手 论文问答 1

同样的一个空方法,遍历1000000次,BeginInvoke用了3秒多 异步还没有同步快吗?

回复

共1条回复 我来回复
  • 源码客栈
    这个人很懒,什么都没有留下~
    评论

    在你的这个场景下当然, 异步有上下文的切换, 多个上下文对象的创建和GC等. 自然慢的得多.

    异步在什么情况下有优势? 例如要等待IO(例如等待数据库响应, 网络响应, 磁盘响应), 线程暂停x秒之类的类似情况. io举例: 100并发同步读取: 系统要维持100个thread同步等待io返回. 100并发异步读取: 请求发出去之后进入异步等待(保存当前的上下文信息, 释放线程), io返回后从threadpool里面获得线程并恢复上下文信息激活异步调用. 这样子系统只要维护少量的thread. 大概可以这么理解.

    0条评论

发表回复

登录后才能评论