小编Ari*_*l32的帖子

线程应用程序中Indy的错误!

当它在GET之后等待服务器的响应并且线程被终止时,我有一些与TidHTTP相关的内存泄漏.

示例:

aThread = class(TThread) 
private  
  FidHTTP :TidHTTP;   
  FCommand :String;
public   
  procedure Execute(); override;   
  constructor Create(aCommand :String); override;
  procedure Disconnect;
end;

procedure aThread.Execute();   
  var response :String; 
begin   
  response := FidHTTP.Get(FCommand); 
end;

procedure aThread.Disconnect;
begin
  if ((FidHTTP <> nil) and (FidHTTP.Connected)) then FidHTTP.IOHandler.CloseGracefully;
end;

constructor aThread.Create(aCommand :String); override; 
begin   
  FCommand := aCommand;    
  inherited Create; 
end;
Run Code Online (Sandbox Code Playgroud)

当应用程序关闭时,我用这个停止线程:

aThread.Disconnect;
aThread.Terminate;
aThread.Free;
Run Code Online (Sandbox Code Playgroud)

我该怎么办才能解决内存泄漏问题?

FastMM4 Log :

13 - 20 bytes: TIdThreadSafeInteger x 1
21 - 36 bytes: EAccessViolation x 1, TIdCriticalSection x 2
181 …
Run Code Online (Sandbox Code Playgroud)

delphi multithreading indy

1
推荐指数
1
解决办法
1646
查看次数

使用WPF在线程中加载图像

我正在尝试制作一个显示来自互联网图片的列表框.这些项目是通过将itemsource绑定到包含图像URL和其他一些属性(title,desc等等)的模型来提供的.

不幸的是,列表加载速度非常慢,因为WPF在显示列表之前尝试从Web下载所有图片,并使应用程序冻结15到25秒.

我已经读过我应该在另一个帖子中加载图片,但我不知道我应该在哪里做以及如何做?是否更好地直接在模型中加载所有图片(通过仅为此创建一个线程池 - 但问题是它不是模型/模型视图的真正部分)或者更好地创建一个将直接更新的后台线程列表何时有数据?

谢谢 !

c# wpf multithreading image list

1
推荐指数
1
解决办法
5837
查看次数

标签 统计

multithreading ×2

c# ×1

delphi ×1

image ×1

indy ×1

list ×1

wpf ×1