【发布时间】:2019-10-07 09:25:57
【问题描述】:
不知道win32函数是否可以异步运行在同一个线程上。
我在MSDN中看到了一个异步函数的例子
https://docs.microsoft.com/en-us/windows/win32/wsw/asyncmodelexample
这涉及多线程吗?
编辑:
异步功能只能通过多线程实现是真的吗?
【问题讨论】:
-
如果您阅读示例中的代码,其中一个函数是调用
CreateThread(),并传递其他函数之一的地址。这是创建将执行传递函数的线程的 Windows API 方式。所以,是的,它是多线程的。 -
@Peter 异步功能只能通过多线程实现是真的吗?
-
不,这不是真的。但是,您想知道的是,是的,这是真的。请花一些时间阅读多线程的定义,您想了解的大部分内容都来自该定义。
-
不,不是。多线程只是一种方式。在单线程程序中可以进行异步操作。看看stackoverflow.com/questions/34680985/…
-
这不完全正确,当线程不忙于执行代码并等待操作系统完成任务时,它在技术上是可能的。 QueueUserAPC() 是完成此任务的核心 winapi 函数。相当先进的编程技术,不经常使用并且与链接的文章无关。