Ran*_* B. 3 delphi multithreading
我有一个主线程(UI线程)和工作线程的应用程序.
主线程将一个大字符串传递给工作线程,然后工作线程根据传递的字符串执行一些工作.
在执行工作线程期间,可能会更改传递的字符串的内容.
有没有办法复制字符串(例如在工作线程的构造函数中)以避免可能的意外并改为处理该字符串副本?
copy()或UniqueString()可以做到吗?
没有必要打电话.最常用的Delphi字符串(string,AnsiString和UnicodeString)实现了"copy on write"机制.如果线程修改了共享字符串,则会自动在该线程中创建该字符串的新副本,并且将修改此副本.
如果您仍希望拥有一个不被代码的任何其他部分"拥有"的字符串,则可以调用UniqueString(s).