异步编程是一种技术,它在后台调用长时间运行的方法,以便UI线程保持响应性。在调用Web服务或数据库查询或任何I/O绑定操作时应使用此技术。当异步方法完成时,它将结果返回给主线程。通过这种方式,程序的主线程不必等待I/O绑定操作的结果,并且可以继续执行而不会阻塞/冻结UI。这样做没问题。
据我所知,异步方法在后台工作线程上执行。运行时从线程池中提供线程,或者可能为其执行创建全新线程。
但我已经读过许多帖子,其中异步操作可能在不使用任何线程的情况下执行。现在我非常困惑。
1)您能否帮助澄清在什么情况下异步操作将不使用线程?
2)处理器核心在异步操作中的作用是什么?
3)它与多线程有何不同? 我知道一件事,即多线程对于计算密集型操作很有用。
请帮忙解答。
据我所知,异步方法在后台工作线程上执行。运行时从线程池中提供线程,或者可能为其执行创建全新线程。
但我已经读过许多帖子,其中异步操作可能在不使用任何线程的情况下执行。现在我非常困惑。
1)您能否帮助澄清在什么情况下异步操作将不使用线程?
2)处理器核心在异步操作中的作用是什么?
3)它与多线程有何不同? 我知道一件事,即多线程对于计算密集型操作很有用。
请帮忙解答。
Begin
/End
风格)、基于事件的异步模式(完成EventHandler
)还是任务异步模式(async
/await
/Task
风格)? - Jeffrey Hantin