程式使用TDiocpTcpClient退出時報錯

2021-07-27 20:33:08 字數 745 閱讀 5690

exe(帶包 vcl;rtl) 呼叫  dll(帶包vcl;rtl;testbpl, 其中testbpl中使用tdiocptcpclient), exe不能正常退出的問題,可以通過在exe動態載入 testbpl解決

原以為是testbpl有問題, 後面通過 exe帶上 testbpl編譯, 也能正常退出, 如果中間通過呼叫dll時再裝載bpl, 就會有問題

多次除錯時,發現單元 diocp_core_engine.pas 以下**

if checkflag(worker_reserved) then

begin

lvresultstatus := getqueuedcompletionstatus(fiocpcore.fiocphandle,

lvbytestransferred,  lpcompletionkey,

infinite);

end else

begin

// 臨時工作執行緒, 30秒後沒有任務可能會被釋放

lvresultstatus := getqueuedcompletionstatus(fiocpcore.fiocphandle,

lvbytestransferred,  lpcompletionkey,

30000);

end;

fonlinecontextlist.count一直》0, 所以會卡住一段時間(waitforcontext(30000);), 也會造成 tiocpworker中不能正常執行完畢, 引發其他問題

MySQL使用觸發程式

觸發程式是與表有關的命名資料庫物件,當表上出現特定事件時,將啟用該物件。在某些觸發程式的用法中,可用於檢查插入到表中的值,或對更新涉及的值進行計算。觸發程式與表相關,當對表執行insert delete或update語句時,將啟用觸發程式。可以將觸發程式設定為在執行語句之前或之後啟用。例如,可以在從...

使用GPU跑程式

檢視機器上gpu情況 命令 nvidia smi 功能 顯示機器上gpu的情況 命令 nvidia smi l 功能 定時更新顯示機器上gpu的情況 命令 watch n 3 nvidia smi 功能 設定重新整理時間 秒 顯示gpu使用情況 其中左上側有0 1 2 3的編號,表示gpu的編號,在...

使用GPU跑程式

檢視機器上gpu情況 命令 nvidia smi 功能 顯示機器上gpu的情況 命令 nvidia smi l 功能 定時更新顯示機器上gpu的情況 命令 watch n 3 nvidia smi 功能 設定重新整理時間 秒 顯示gpu使用情況 其中左上側有0 1 2 3的編號,表示gpu的編號,在...