Wiz*_*ard 2 delphi multithreading thread-safety
如果你有一个调用函数的线程,AFAIK是任何全局或VCL组件调用,这使得它不是线程安全的吗?
所以如果你的线程调用了类似的方法
procedure UpdateRow()
begin
StringGrid1.AddRow(....);
end;
Run Code Online (Sandbox Code Playgroud)
这不是线程安全的.但是如果你有这样的方法
function ParseXML(const XML : String) : string;
var
xml_parser : TXMLParser;
begin
xml_parser := TXMLParser.create;
... do stuff
result := xml_parser.something;
xml_parser.free;
end;
Run Code Online (Sandbox Code Playgroud)
这是线程安全的,只要TXMLParser没有做任何unthread安全的事情.
但是如果两个线程同时调用该方法,它不会抛出异常,因为它们都创建了自己的TXMLParser实例吗?他们得到自己的副本.那是对的吗?
希望有道理:)
| 归档时间: |
|
| 查看次数: |
433 次 |
| 最近记录: |