据我了解,异步编程不涉及线程。
根据我对Cleary的理解,它只是通过在硬件中利用DMA引擎来获得性能。 其工作原理如下:
这是通过状态机在C#
中实现的,这是一个简单的示例here(点数转到Lasse V. Karlsen
据我所知,如果IF DMA不可用,那么将在数据复制操作中使用涉及CPU的已编程I / O。除了PI / O之外,是否还有DMA的替代方案?
在这种情况下,异步等待如何获得性能?据我了解,我只是看到它以零增益增加了更多开销(状态机和中断的上下文切换)。
我的理解在多大程度上是正确的?
PS:我根本不使用C#,但是我发现该示例确实有用-我可以接受任何语言的示例。