全國最多中醫師線上諮詢網站-台灣中醫網
發文 回覆 瀏覽次數:1733
推到 Plurk!
推到 Facebook!

執行緒處理儲存大圖檔出現的錯誤訊息

尚未結案
esp_pzj
初階會員


發表:32
回覆:70
積分:40
註冊:2007-02-09

發送簡訊給我
#1 引用回覆 回覆 發表時間:2008-12-12 09:16:45 IP:59.120.xxx.xxx 訂閱
各位大大:

以下是 我的 執行緒程式碼:

[code delphi]

type
TScanThread = class(TThread)
private
BmpTs:TBitmap;
FileN:String;
{ Private declarations }
protected
procedure Execute; override;
Public
constructor create(g_bmpTs:TBitmap;g_FileN:String);
end;


constructor TScanThread.create(g_bmpTs:TBitmap;g_FileN:String);
//var
// jpg: TJpegImage;
begin
inherited create(false);

Priority:=tpTimeCritical; //設定執行權限

FreeOnTerminate:=True;

BmpTs:=g_bmpTs;
FileN:=g_FileN;
end;
procedure TScanThread.Execute;
var
jpg1: TJpegImage;
begin
try

Jpg1:=TJpegImage.Create();
Jpg1.Assign(bmpTs);
jpg1.CompressionQuality := 65;

DeleteFile('c:/' FileN '.jpg');
jpg1.SaveToFile('c:/' FileN '.jpg');

finally
jpg1.Free;
end;
end;



[/code]

執行上列執行緒 會出現 下列 二個 錯誤訊息:
一、
Project ScanRead.exe raised exceptio class EInvalidGraphic message
'Bitmap image is not valid'. Process stopped.
二、
Project ScanRead.exe raised exceptio class EAccess Violation with message 'Access violation at address 00403C18 in module 'Scan Read.exe'. read of address 00D7BFDC'. Process stopped. Use Step or Run to continue.

請教各位大大,如何解決這個問題?

處理的 圖檔大小 2024x2848 bmp格式約 11Mb,
執行緒設定最高權限 Priority:=tpTimeCritical; 出現上列錯誤訊息的的時間 會比較 出現 約 130張 出現錯誤訊息
執行緒設定一般權限 Priority:=tpNormal; 出現上列錯誤訊息的的時間 會比較 出現 約 20張 出現錯誤訊息

補充一
另外將執行緒設定最高權限 Priority:=tpTimeCritical;
有時會出現 下列 錯誤訊息 ,我可以不要理會這個 錯誤訊息嗎?

Project ScanRead.exe raised exceptio class EOutOfResources with message
'Out of system resources'. Process stopped.Use Step or Run to continue.
------
學藝不精 謝多多指教
編輯記錄
esp_pzj 重新編輯於 2008-12-12 14:20:08, 註解 補充一‧
系統時間:2024-05-09 2:10:43
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!