我记得有一种方法可以做到这一点,类似于unix信号,但没有如此广泛地使用。但不记得这个词。没有使用事件/互斥锁:线程只是在随机位置中断,函数被调用,并且当它返回时,线程继续。如何在另一个线程的上下文中调用一个函数?
回答
你可以搜索RtlRemoteCall
,但它是一个没有记录的例程。 Windows中的APC在语义上类似于Unix信号,但APC要求目标线程处于可警告状态才能交付,但不能保证始终满足此条件。
刚刚尝试过RtlRemoteCall。显然,如果一个线程处于不可警告的等待状态(同步ReadFile),则不会调用该函数。 – basin
Windows有Asynchronous Procedure Calls它可以在特定的上下文中调用函数线。 APC不会在随机的地方中断一个线程(这很危险 - 线程可能正在写入文件或获取锁或处于内核模式中)。相反,当调用线程通过调用特定函数进入可变等待时,将调度APC(请参阅APC文档)。
如果您需要调用的代码在一个特定的线程的原因是因为你与用户界面交互,这将是更直接的send或post窗口消息要更新的窗口句柄。窗口消息总是在创建窗口的线程中处理。
+1,yup - 用于GUI的PostMessage/SendMessage,否则带有可警告等待的APC。 –
- 1. 如何从另一个线程在主线程上调用函数vb
- 2. 如何在另一个线程中运行一个函数
- 3. 在另一个线程上调用非静态类函数
- 4. 如何在另一个函数中调用另一个类的函数
- 5. 如何调用一个funtion在另一个函数中的Node.js
- 6. 从另一个函数调用另一个函数在这个
- 7. 如何在另一个函数中调用多个函数C
- 8. 调用一个函数在另一个
- 9. 如何调用另一个函数内的一个函数Jquery
- 10. 如何确保在另一个线程上调用IXMLHTTPRequest2回调?
- 11. 在PL/PGSQL的另一个函数中调用一个函数
- 12. 如何在一个类中调用另一个函数(方法)?
- 13. 如何在同一个对象中调用另一个函数?
- 14. 如何从另一个函数调用一个数字到一个函数中?
- 15. 如何在调用另一个函数后返回上一个函数?
- 16. 如何在Python的另一个函数中调用函数?
- 17. 如何在extjs4的另一个函数中调用函数?
- 18. 线程调用另一个类中的函数
- 19. 如何调用一个函数,它在python的另一个函数中定义?
- 20. 在php中,如何从另一个类中的另一个类调用函数?
- 21. 在另一个函数中调用一个函数。 C#
- 22. 从另一个JS文件中的另一个函数调用JavaScript函数
- 23. 如何将变量从另一个函数调用到另一个函数中
- 24. 一个线程如何在另一个线程中被杀死
- 25. 如何在另一个.m文件中引用一个函数?
- 26. 如何从另一个文件中调用另一个Jquery函数
- 27. 如何在另一个函数中使用一个函数值?
- 28. 用另一个线程上的方法/函数打开另一个表单?
- 29. 如何调用另一个JavaScript函数
- 30. 如何调用另一个函数
你确定它是另一个线程上下文中的函数吗? Windows可以很容易地在另一个进程中运行代码,但在另一个线程中是我从未见过的东西。 – JimR
请不要在标题中加入标签信息。这里的标记系统非常擅长对事物进行分类,并且不需要帮助。 :-)请参阅[应该在其标题中是否包含“标签”?](http://meta.stackexchange.com/q/19190/172661)。谢谢。 –