我對Timer.scheduledTimer()
如果執行比指定的withTimeInterval:
需要更多時間觸發代碼塊有疑問。Swift`Timer`在指定的時間間隔之前觸發
在執行完程序段或執行程序段的第一條語句後,是否開始倒計時?
//Logic is to waste the time in the block which will take more than 5 secs to run.
Timer.scheduledTimer(withTimeInterval: 5, repeats: true){
timer in
var sum = 0
var count = 0
print("START===================================")
print(Int64(Date().timeIntervalSince1970 * 1000))
for i in 2..<100000
{
for j in 2..<10000
{
sum = i+j
}
}
print(sum) // Ignore this. sum is used here so that compiler might won't be able to remove the loop in the optimisations due to unused variable reason.
print(Int64(Date().timeIntervalSince1970 * 1000))
print("END===================================")
}
RunLoop.main.run()
輸出:
所以我用下面的代碼測試
START===================================
1507965166992
109998
1507965173888
END===================================
START===================================
1507965176993
109998
1507965183890
END===================================
START===================================
1507965186989
當我減去先前循環的結束時間和電流回路的開始時間,我總是在3秒左右。但是我已經指定了5秒。這是爲什麼?
'Timer'用於在特定的時間或重複與指定時間間隔的執行來執行代碼。 G.C.D用於多線程。你的解決方案與它有什麼關係? – unknownymouse
通過使用GCD我們也可以輕鬆處理函數的執行.. !! –
但是如何?你能提供一段代碼來模擬GCD中的定時器功能嗎? – unknownymouse