错误是“标记没有使用存储”。我今天把线程模式改为了Free模式后,可以在线程中进行创建和调用,但创建和调用都必须是在同一个线程内才行。后来我在主线程内创建了接口,而后在另一个线程内调用其函数,则出现了这么一个错误“消息筛选器拒绝这个调用”;不知是为什么。我在对这个接口调用时采用了TCriticalSection进行了保护。我是这么做的,代码如下:
procedure TDBManager.initialize;//采用了独身模式
begin
inherited;
//以下的几个都是采用了独身模式的类,其Wapper了接口
FFriend := TFriend.
Create;
FFriendGroup:= TFriendGroup.Create;
FChatMsg:= TChatMsg.Create;
FPersonInfo := TPersonInfo.Create;
end;
DBManager在主线程创建
在另一个线程中我进行了调用
PersonInfo.GetPersonInfoByID('',ErrorCode,Format('%.6d',[ParmUin]),Data);
GetPersonInfoByID方法是这么写的
FLock.Enter;
try
FPersonInfo.GetPersonInfoByID(ALoginID, AErrorCode, AUserID, AData);
finally
FLock.Leave;
end;