免费视频淫片aa毛片_日韩高清在线亚洲专区vr_日韩大片免费观看视频播放_亚洲欧美国产精品完整版

打開APP
userphoto
未登錄

開通VIP,暢享免費(fèi)電子書等14項(xiàng)超值服

開通VIP
安全的結(jié)束delphi線程tthread
2012-11-07 15:00 580人閱讀 評(píng)論(0) 收藏 舉報(bào)

在使用delphi做開發(fā)時(shí),使用線程可以從TThread繼續(xù),然后覆蓋execute方法,這樣我們的線程類就OK了,在execute寫上要處理的代碼就可以。當(dāng)線程的執(zhí)行從execute退出時(shí)線程也就結(jié)束了,這能正確的釋放建立tthread時(shí)的一些資源,如果加while not terminated do...end中執(zhí)行,調(diào)用terminate其實(shí)也是一個(gè)道理。delphi中線程結(jié)束代碼如下:

  try
    if not Thread.Terminated then
    try
      Thread.Execute;
    except
      Thread.FFatalException := AcquireExceptionObject;
    end;
  finally
    FreeThread := Thread.FFreeOnTerminate;
    Result := Thread.FReturnValue;
    Thread.DoTerminate;
    Thread.FFinished := True;
    SignalSyncEvent;
    if FreeThread then Thread.Free;
    EndThread(Result);

  end;

EndThread時(shí)線程即被結(jié)束。通過代碼看到如果execute發(fā)生異常也是能正常釋放資源的,因?yàn)橥鈱佑袀€(gè)更大的tryf。假如我們通過terminatethread結(jié)束線程那么是不會(huì)執(zhí)行finally中代碼的,資源便不會(huì)釋放。進(jìn)程中加載的dll也不會(huì)收到線程結(jié)束的通知。如果長(zhǎng)期這樣結(jié)束,會(huì)導(dǎo)致創(chuàng)建線程時(shí)報(bào)"thread creation error. 系統(tǒng)內(nèi)存不足,無(wú)法處理此命令"。

本站僅提供存儲(chǔ)服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊舉報(bào)
打開APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
Delphi線程基礎(chǔ)知識(shí)
Delphi?TThread
delphi多線程編程
用多線程進(jìn)行數(shù)據(jù)采集
Delphi+多線程
C++Builder的多線程編程中一些體會(huì)_C語(yǔ)言教程_C++教程_C語(yǔ)言培訓(xùn)_C++教程...
更多類似文章 >>
生活服務(wù)
分享 收藏 導(dǎo)長(zhǎng)圖 關(guān)注 下載文章
綁定賬號(hào)成功
后續(xù)可登錄賬號(hào)暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服