当另一个线程可以在Delphi中使用该对象时,如何安全地将其放置在线程中?

gi

当另一个线程可以在Delphi中使用该对象时,如何安全地将其放置在线程中?有什么想法或文章可以阅读吗?

雷米·勒博(Remy Lebeau)

您必须确保其他线程不再使用该对象,然后才能安全处置它。

用锁(例如,临界区或互斥锁)包装对对象的所有访问。

或使对象被引用计数。使每个线程在处理对象时增加refcount,并在完成时减少refcount。然后,您可以在将对象的引用计数减为0之后对其进行处理。为此,编写一个TInterfacedObject实现Delphi派生类可以interface很好地实现此目的,并自动为您完成大部分工作。

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

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

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何安全地将可变对象从一个线程发布到另一个线程

来自分类Dev

得到错误调用线程无法访问该对象,因为另一个线程拥有该对象wpf,如何使用Dispatch.invovef

来自分类Dev

我该如何从HashMap中删除一个线程,并从另一个线程中插入一个线程?

来自分类Dev

Python多线程使用另一个线程中的一个线程的数据

来自分类Dev

如何在Java中使用线程时安全地递增

来自分类Dev

什么时候可以安全地通过引用捕获另一个lambda中的lambda?

来自分类Dev

当锁包含非最终对象时,该对象的引用是否仍可以由另一个线程更改?

来自分类Dev

如何从另一个线程android访问对象

来自分类Dev

空指针可以安全地指向另一个指针吗?

来自分类Dev

结束另一个线程中使用的对象的生存期

来自分类Dev

调度程序可以在线程的哪一点离开并启动另一个线程?

来自分类Dev

leveldb线程安全:读入一个线程,遍历另一个线程

来自分类Dev

当可以在另一个对象中更改一个对象时,如何在C ++中使用析构函数

来自分类Dev

如何在python中的同一对象中的另一个线程内生成线程?

来自分类Dev

C ++线程:如何使用lambda函数将主线程中的参数传递给另一个线程

来自分类Dev

如何清除另一个操作系统并安全地安装Ubuntu?

来自分类Dev

如何sudo git clone并安全地更改对另一个用户的权限

来自分类Dev

如何清除另一个操作系统并安全地安装Ubuntu?

来自分类Dev

从int []数组读取而另一个线程更新该int []数组是否安全?

来自分类Dev

调用线程无法访问该对象,因为即使使用分派器,该线程也拥有另一个线程

来自分类Dev

同时使用两个线程时将一个线程移动到另一个线程

来自分类Dev

如何阻止一个线程修改另一个线程正在使用的数组?

来自分类Dev

Delphi:在线程上的plugindll中创建的对象中使用adocomponents时发生异常

来自分类Dev

如何从另一个线程在Treeview中添加对象

来自分类Dev

Mutt:在线程中回复并添加来自另一个对话的消息

来自分类Dev

如何从一个线程循环arraylist,同时从另一个线程将其添加到它?

来自分类Dev

当一个项目在另一个线程中启动时,如何从另一个项目访问一个项目

来自分类Dev

使用另一个线程在WPF中创建新窗口时的奇怪行为

来自分类Dev

著名的调用线程无法访问该对象,因为存在另一个问题

Related 相关文章

  1. 1

    如何安全地将可变对象从一个线程发布到另一个线程

  2. 2

    得到错误调用线程无法访问该对象,因为另一个线程拥有该对象wpf,如何使用Dispatch.invovef

  3. 3

    我该如何从HashMap中删除一个线程,并从另一个线程中插入一个线程?

  4. 4

    Python多线程使用另一个线程中的一个线程的数据

  5. 5

    如何在Java中使用线程时安全地递增

  6. 6

    什么时候可以安全地通过引用捕获另一个lambda中的lambda?

  7. 7

    当锁包含非最终对象时,该对象的引用是否仍可以由另一个线程更改?

  8. 8

    如何从另一个线程android访问对象

  9. 9

    空指针可以安全地指向另一个指针吗?

  10. 10

    结束另一个线程中使用的对象的生存期

  11. 11

    调度程序可以在线程的哪一点离开并启动另一个线程?

  12. 12

    leveldb线程安全:读入一个线程,遍历另一个线程

  13. 13

    当可以在另一个对象中更改一个对象时,如何在C ++中使用析构函数

  14. 14

    如何在python中的同一对象中的另一个线程内生成线程?

  15. 15

    C ++线程:如何使用lambda函数将主线程中的参数传递给另一个线程

  16. 16

    如何清除另一个操作系统并安全地安装Ubuntu?

  17. 17

    如何sudo git clone并安全地更改对另一个用户的权限

  18. 18

    如何清除另一个操作系统并安全地安装Ubuntu?

  19. 19

    从int []数组读取而另一个线程更新该int []数组是否安全?

  20. 20

    调用线程无法访问该对象,因为即使使用分派器,该线程也拥有另一个线程

  21. 21

    同时使用两个线程时将一个线程移动到另一个线程

  22. 22

    如何阻止一个线程修改另一个线程正在使用的数组?

  23. 23

    Delphi:在线程上的plugindll中创建的对象中使用adocomponents时发生异常

  24. 24

    如何从另一个线程在Treeview中添加对象

  25. 25

    Mutt:在线程中回复并添加来自另一个对话的消息

  26. 26

    如何从一个线程循环arraylist,同时从另一个线程将其添加到它?

  27. 27

    当一个项目在另一个线程中启动时,如何从另一个项目访问一个项目

  28. 28

    使用另一个线程在WPF中创建新窗口时的奇怪行为

  29. 29

    著名的调用线程无法访问该对象,因为存在另一个问题

热门标签

归档