【发布时间】:2010-12-04 05:32:45
【问题描述】:
我正在使用 Delphi 2009,但使用以下代码段时出现了一些奇怪的错误:
var
Str : AnsiString;
CharPtr : PAnsiChar;
...
CharPtr := PAnsiChar (Str);
ExecuteInBackgroundThread (
procedure
begin
DoSomething (CharPtr);
end);
我猜想字符串在超出范围时会被破坏,并且在某些时间条件下 DoSomething 会产生最奇怪的结果。所以第一个问题是:我说的对吗?
第二个问题是:如何规避被破坏的字符串?这样做的正确方法是什么?
提前致谢。
【问题讨论】:
标签: multithreading delphi delphi-2009 anonymous-methods