W
weiky_wws
Unregistered / Unconfirmed
GUEST, unregistred user!
我在主进程中getmem(pRecord,sizeof(Record)),pRecor是一个变体结构指针
dtlist.add(pRecord),然后再一个自己创建的线程中使用如下代码:
procedure Tmyprocess.execute;
begin
while not suspendeddo
begin
if tlist.count<>0 then
begin
pRecordOut:=tlist.extract(tlist.first));
freemem(pRecordOut,sizeof(RecordOut));
end;
end;
但是运行1个小时左右,会在freemem(pRecordOut,sizeof(RecordOut));处出现异常EInvalidPointer
with message'Invalid Pointer Operation'.
不知是什么原因?是不是多线程有冲突,我用了TCristalSection好像也没用。急!急!急!
dtlist.add(pRecord),然后再一个自己创建的线程中使用如下代码:
procedure Tmyprocess.execute;
begin
while not suspendeddo
begin
if tlist.count<>0 then
begin
pRecordOut:=tlist.extract(tlist.first));
freemem(pRecordOut,sizeof(RecordOut));
end;
end;
但是运行1个小时左右,会在freemem(pRecordOut,sizeof(RecordOut));处出现异常EInvalidPointer
with message'Invalid Pointer Operation'.
不知是什么原因?是不是多线程有冲突,我用了TCristalSection好像也没用。急!急!急!