C 呼叫方法並給方法設定超時時間

2021-10-21 19:24:26 字數 1251 閱讀 7204

最近做專案遇到乙個問題,需要呼叫某個api實現與下位機通訊,但下位機可能會存在掉線的情況,為保證程式不會卡死,需要給呼叫程式設定乙個超時時間,超時後需要提醒主程式錯誤。

參照了csdn上一些範例**,主要實現方法是採用委託、通過委託的begininvoke呼叫程式並傳入callback函式,通過manualresetevent().waitone()設定超時時間,通過endinvoke()實現呼叫結果檢視,範例**如下:

//非同步超時類

using system;

using system.collections.generic;

using system.text;

using system.threading;

namespace timeouttest

public delevent tasktodo;

private

bool timeoutflag =

false

;public

bool

testtimeout

(int durationms)

this

.mevent.

reset()

;this

.timeoutflag =

true

;this

.tasktodo.

begininvoke

(doasynccallback,

null);

if(!this

.mevent.

waitone

(durationms,

false))

return

this

.timeoutflag;

}public

void

doasynccallback

(iasyncresult result)

catch

(exception e)

finally}}

}

以下是測試類:

//測試類

using system;

using system.collections.generic;

using system.linq;

using system.text;

using system.threading.tasks;

namespace timeouttest

}}

設定PHP指令碼執行超時時間的方法

設定php指令碼執行超時的時間有下面這樣一些方法 php.ini 中限定程式的最長執行時間是 30 秒,這是由 php.ini 配置檔案中的 max execution time 變數指定,倘若你有乙個需要頗多時間才能完成的程式 會由於超時而執行失敗,例如要傳送很多電子郵件給大量收件者,或者要進行繁...

hystrix熔斷指定方法設定超時時間

hystrix command default default全域性有效 execution timeout 是否開啟超時熔斷 enabled true isolation thread timeoutinmilliseconds 6000 斷路器超時時間,預設1000ms hystrixcommo...

C 連線串設定超時時間相關

超時時間已到。在操作完成之前超時時間已過或伺服器未響應 初步分析原因為對mssql操作時連線超時,知道這事,以前沒留意,大概是在配置檔案中設定連線時限,在網上找了下解決方法,大多說在資料庫連線字串裡解決 sqlconnection con new sqlconnection server datab...