如何在一个线程中安全地处理一个对象,而另一个线程可以在Delphi中使用该对象?

时间:2016-05-12 03:13:18

标签: multithreading delphi thread-safety

如何在线程中安全地处理对象,而另一个线程可以在Delphi中使用该对象? 有关想要阅读的想法或文章吗?

1 个答案:

答案 0 :(得分:7)

在安全处理之前,您必须确保其他线程不再使用该对象。

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

或者使对象被引用计数。在处理对象时让每个线程递增引用计数,并在完成时递减它。然后你可以在它的refcount减少到0之后处理该对象。编写一个实现Delphi TInterfacedObjectinterface派生类将很好地用于此目的并完成大部分工作你自动了。