我在这里读了大约async
篇文章:http://www.asp.net/web-forms/tutorials/aspnet-45/using-asynchronous-methods-in-aspnet-45篇,作者说:
在进行异步工作时,并不总是使用线程.
所以我想理解的是,如果我们不使用任何线程来并发执行,它怎么会变成async
?"你不总是用线"是什么意思?
首先让我解释一下关于使用线程的知识(一个简单的例子,当然线程可以在不同的情况下使用,而不是UI和Worker方法)
- 你有UI线程来接受输入,给出输出.
- 你可以在UI线程中处理事情,但这会使UI没有响应.
- 假设我们有一个与流相关的操作,我们需要下载一些数据.
- 我们还允许用户在下载时做其他事情.
- 我们创建一个新的工作线程,下载文件并更改进度条.
- 一旦完成,就没有什么可以做的了,所以线程被终止.
- 我们从UI线程继续.
我们可以根据情况在UI线程中等待工作线程,但在此之前,当文件正在下载时,我们可以使用UI线程做其他事情,然后等待工作线程.
async
个节目不一样吗?如果没有,有什么区别?我读到async
个编程使用ThreadPool
个线程.