哪个线程将运行TThread实例的方法?(在等待模式下)

EProgrammerNotFound
  • 当TThread进入Synchronized()方法时,它等待直到EnterCriticalSection(ThreadLock)返回。

现在,如果同时有另一个Tthread或什至是主线程调用了正在等待的Tthread的某个方法,那么哪个将运行该方法?

大卫·赫弗南(David Heffernan)

如果在此期间,另一个线程甚至主线程调用了等待线程的某个方法,会发生什么情况?

线程没有方法,所以这个问题是不合逻辑的。

询问当调用另一个线程的方法时会发生什么是没有意义的。因为这是不可能的。调用方法时,该方法在调用它的线程上执行。

类似的方法可以将代码的执行TThread.Synchronize 安排在另一个线程上。但是,的主体TThread.Synchronize是由调用者的线程执行的。

EnterCriticalSection不能通过用户模式代码中断对的调用因此,假设线程AEnterCriticalSection在线程B持有锁的位置进行调用EnterCriticalSection线程B释放锁定之前,不会返回对线程A的调用当线程A被阻塞等待获取锁时,线程A上不会执行任何代码。


从评论中的澄清看来,您的问题实际上是:

TThread调用的方法时,该方法在哪个线程上执行?

答案是该方法在调用线程上执行。TThread该类没有什么特别的,因此通常的规则适用。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

等待TThread实例启动的正确方法是什么

来自分类Dev

线程:如何知道方法在哪个线程中运行?

来自分类Dev

哪个线程先运行?

来自分类Dev

如何选择哪个远程vifm实例将运行命令?

来自分类Dev

从线程内部实例化TThread-descendent是否安全?

来自分类Dev

当匹配的运行模式数相同时,将应用哪个配置

来自分类Dev

WKWebView的valuateJavascript方法的completionHandler在哪个线程上运行?

来自分类Dev

订户的onNext()方法在哪个线程上运行?

来自分类Dev

由NSTimer发起的方法在哪个线程上运行?

来自分类Dev

等待异步模式并窃取线程

来自分类Dev

异步/等待方法是否在与调用方相同的线程中运行?

来自分类Dev

如何知道在哪个线程是“等待”的情况?

来自分类Dev

如何在不等待当前函数/线程结果的情况下运行异步任务?

来自分类Dev

将数据从TThread发送到主VCL线程

来自分类Dev

将数据从TThread发送到主VCL线程

来自分类Dev

TThread等待用户输入

来自分类Dev

异步/等待模式。如何将等待方法传递给另一个方法

来自分类Dev

在ARC下从哪个线程调用dealloc?

来自分类Dev

检查从哪个线程调用方法

来自分类Dev

等待并发线程的首选方法

来自分类Dev

等待并发线程的首选方法

来自分类Dev

将kwargs传递给线程运行器方法的最佳方法

来自分类Dev

从Tkinter运行线程并等待直到完成

来自分类Dev

等待函数如何知道要选择哪个线程信息

来自分类Dev

确定按下按钮时将运行哪个代码-限制复选框

来自分类Dev

如何运行x线程数量并等待线程完成

来自分类Dev

让线程在主窗体关闭后运行,而不必等待线程完成

来自分类Dev

在“调试”模式下运行Boxstarter?

来自分类Dev

在缩放模式下运行以拒绝

Related 相关文章

  1. 1

    等待TThread实例启动的正确方法是什么

  2. 2

    线程:如何知道方法在哪个线程中运行?

  3. 3

    哪个线程先运行?

  4. 4

    如何选择哪个远程vifm实例将运行命令?

  5. 5

    从线程内部实例化TThread-descendent是否安全?

  6. 6

    当匹配的运行模式数相同时,将应用哪个配置

  7. 7

    WKWebView的valuateJavascript方法的completionHandler在哪个线程上运行?

  8. 8

    订户的onNext()方法在哪个线程上运行?

  9. 9

    由NSTimer发起的方法在哪个线程上运行?

  10. 10

    等待异步模式并窃取线程

  11. 11

    异步/等待方法是否在与调用方相同的线程中运行?

  12. 12

    如何知道在哪个线程是“等待”的情况?

  13. 13

    如何在不等待当前函数/线程结果的情况下运行异步任务?

  14. 14

    将数据从TThread发送到主VCL线程

  15. 15

    将数据从TThread发送到主VCL线程

  16. 16

    TThread等待用户输入

  17. 17

    异步/等待模式。如何将等待方法传递给另一个方法

  18. 18

    在ARC下从哪个线程调用dealloc?

  19. 19

    检查从哪个线程调用方法

  20. 20

    等待并发线程的首选方法

  21. 21

    等待并发线程的首选方法

  22. 22

    将kwargs传递给线程运行器方法的最佳方法

  23. 23

    从Tkinter运行线程并等待直到完成

  24. 24

    等待函数如何知道要选择哪个线程信息

  25. 25

    确定按下按钮时将运行哪个代码-限制复选框

  26. 26

    如何运行x线程数量并等待线程完成

  27. 27

    让线程在主窗体关闭后运行,而不必等待线程完成

  28. 28

    在“调试”模式下运行Boxstarter?

  29. 29

    在缩放模式下运行以拒绝

热门标签

归档