C#中的异步操作和线程

异步编程是一种在后台调用长时间运行的方法的技术,以便UI线程保持响应.它应该在调用Web服务或数据库查询或任何I / O绑定操作时使用.当异步方法完成时,它将结果返回给主线程.这样,程序的主线程不必等待I / O绑定操作的结果,并继续执行而不阻塞/冻结UI.还行吧.

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

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

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

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

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

请帮忙.

解决方法

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

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

相关文章

目录简介使用JS互操作使用ClipLazor库创建项目使用方法简单测...
目录简介快速入门安装 NuGet 包实体类User数据库类DbFactory...
本文实现一个简单的配置类,原理比较简单,适用于一些小型项...
C#中Description特性主要用于枚举和属性,方法比较简单,记录...
[TOC] # 原理简介 本文参考[C#/WPF/WinForm/程序实现软件开机...
目录简介获取 HTML 文档解析 HTML 文档测试补充:使用 CSS 选...