C#中的异步操作和线程
发布时间:2020-12-15 08:46:57 所属栏目:百科 来源:网络整理
导读:异步编程是一种在后台调用长时间运行的方法的技术,以便UI线程保持响应.它应该在调用Web服务或数据库查询或任何I / O绑定操作时使用.当异步方法完成时,它将结果返回给主线程.这样,程序的主线程不必等待I / O绑定操作的结果,并继续执行而不阻塞/冻结UI.还行吧.
异步编程是一种在后台调用长时间运行的方法的技术,以便UI线程保持响应.它应该在调用Web服务或数据库查询或任何I / O绑定操作时使用.当异步方法完成时,它将结果返回给主线程.这样,程序的主线程不必等待I / O绑定操作的结果,并继续执行而不阻塞/冻结UI.还行吧.
据我所知,异步方法在后台工作线程上执行.运行时使线程池中的线程可用,或者它可以为其执行创建一个全新的线程. 但是我在许多帖子中都读过异步操作可以在单独的线程上执行,也可以不使用任何线程.现在我很困惑. 1)您能帮助澄清异步操作不会使用线程的情况吗? 2)处理器内核在异步操作中的作用是什么? 3)它与多线程有何不同?我知道多线程与计算绑定操作一起使用的一件事. 请帮忙. 解决方法
IO(假设通过网络进行数据库操作)是所有三个的一个很好的例子:
>你基本上只是注册一个回调操作系统最终会在IO操作完成后调用(可能在新创建的线程上).没有线程坐着等待 – 复活将由硬件事件触发(或至少由OS进程触发,通常在用户空间之外)>它可能没有(见1)>在多线程中你使用多个线程(你的后台线程),并且有一个人可能闲置在那里什么都不做(但是用尽了系统资源) – 如果你有一些东西要计算,这当然是不同的(所以线程不是空闲等待外部结果) – 使用后台工作线程是有意义的 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |