消息关闭
    暂无新消息!
使用匿名线程加载一个50M的大图片,希望程序能不卡死,为什么匿名线程明明是成功的,为什么还卡呢?要怎么解决?

procedure TForm1.FormClick(Sender: TObject);
begin
  TThread.CreateAnonymousThread(procedure
  begin
          image1.Picture.LoadFromFile('C:\Users\Administrator\Desktop\大图片\735296906189813293.jpg');
     
  end).Start;
end;
---------------------------------------------- 
-

5个回答

︿ 2
线程中不宜对Image,进行操作。建议你放在普通的事件中,比较好,比较OnCreat或Button1Click事件中,比较流畅。
︿ 1
子线程不要操作界面控件。
加载大图片,在子线程中,创建TImage,然后加载图形,最后同步到主线程中去设置Parent到界面
︿ 0
不要用TImage,TImage是图形显示容器,要用图形容器TBitmap之类的,后台线程可以预读一系列的TBitmap,前台TImage根据需要显示其中的一个,这样就不会卡顿了,对于近四、五年以来的电脑,内存assign几十MB的BITMAP只是毫秒级的事情。