C#中的异步操作和线程

前端之家收集整理的这篇文章主要介绍了C#中的异步操作和线程前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
异步编程是一种在后台调用长时间运行的方法的技术,以便UI线程保持响应.它应该在调用Web服务或数据库查询或任何I / O绑定操作时使用.当异步方法完成时,它将结果返回给主线程.这样,程序的主线程不必等待I / O绑定操作的结果,并继续执行而不阻塞/冻结UI.还行吧.

据我所知,异步方法后台工作线程上执行.运行时使线程池中的线程可用,或者它可以为其执行创建一个全新的线程.

但是我在许多帖子中都读过异步操作可以在单独的线程上执行,也可以不使用任何线程.现在我很困惑.

1)您能帮助澄清异步操作不会使用线程的情况吗?

2)处理器内核在异步操作中的作用是什么?

3)它与多线程有何不同?我知道多线程与计算绑定操作一起使用的一件事.

请帮忙.

解决方法

IO(假设通过网络进行数据库操作)是所有三个的一个很好的例子:

>你基本上只是注册一个回调操作系统最终会在IO操作完成后调用(可能在新创建的线程上).没有线程坐着等待 – 复活将由硬件事件触发(或至少由OS进程触发,通常在用户空间之外)>它可能没有(见1)>在多线程中你使用多个线程(你的后台线程),并且有一个人可能闲置在那里什么都不做(但是用尽了系统资源) – 如果你有一些东西要计算,这当然是不同的(所以线程不是空闲等待外部结果) – 使用后台工作线程是有意义的

原文链接:https://www.f2er.com/csharp/244845.html

猜你在找的C#相关文章