最近做專案遇到乙個問題,需要呼叫某個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...