gpt4 book ai didi

c++ - Win32 函数可以在同一个线程上异步运行吗?

转载 作者:搜寻专家 更新时间:2023-10-31 02:01:54 24 4
gpt4 key购买 nike

我想知道 win32 函数是否可以在同一个线程上异步运行。

我在MSDN看到了一个异步函数的例子

https://learn.microsoft.com/en-us/windows/win32/wsw/asyncmodelexample

这是否涉及多线程?

编辑:

异步函数只能通过多线程实现是真的吗?

最佳答案

I wonder whether win32 functions can asynchronously run on the same thread.

没有。 win32 函数服务于系统调用。它们在自己的上下文中运行(或者,您可以将它们视为系统线程)。它们可能会阻塞您的线程(同步系统调用)或不阻塞您的线程(异步调用)。对于那些同步调用,它看起来像是在您的线程上运行(阻塞),但实际上,它在不同的上下文中运行。

I saw an example of the asynchronous function in MSDN https://learn.microsoft.com/en-us/windows/win32/wsw/asyncmodelexample Is this involving multi-threading?

是的。这个例子实现了多线程(两个线程)。其中一个线程使用异步通知(回调函数)将结果通知另一个线程。

Is it TRUE that asynchronous functions can only be realized by Multithreading?

没有。如前所述,一些系统功能是异步的(或同时具有同步和异步选项)。您可以使用这些函数来执行异步操作。就好像系统给你提供了多线程,而不需要自己去实现一个多线程程序。

请注意,系统调用仅执行系统服务,一组定义良好的系统函数。如果您需要在您的另一个线程中实现系统服务之外的其他功能,那么,是的,您需要另一个线程来完成它。

关于c++ - Win32 函数可以在同一个线程上异步运行吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58266776/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com