我嘗試讓這個庫與線程一起工作,但我無法使用syncronize將結果返回到主線程。NativeXml和線程
在excute方法中創建xml沒有問題。
有人用過它嗎?
TMyThread = class(TThread)
private
ADoc : TNativeXml;
protected
procedure Execute; override;
procedure DoProgress;
public
constructor Create(CreateSuspended: Boolean);
end;
{ TMyThread }
constructor TMyThread.Create(CreateSuspended: Boolean);
begin
inherited;
end;
procedure TMyThread.DoProgress;
begin
formMain.meminfo.Lines.Add(ADoc.WriteToString);
end;
procedure TMyThread.Execute;
var i,j : integer;
begin
inherited;
begin
ADoc:= ADoc.Create(formMain);
try
Adoc.XmlFormat := xfReadable;
ADoc.LoadFromFile('test.xml');
Synchronize(DoProgress);
finally
FreeAndNil(ADoc);
end;
end;
end;
當您運行此操作時會發生什麼?例外?沒有?空串?調試器崩潰?請提供更多信息。 – Martijn 2011-04-12 12:27:31