四種延時執行某函式的方法及其一些區別。假如延時1秒時間執行下面的方法。
- (void)delaymethod
[self performselector:@selector(delaymethod) withobject:nil afterdelay:1.0f];
此方式要求必須在主線程中執行,否則無效。
是一種非阻塞的執行方式,
暫時未找到取消執行的方法。
[nstimer scheduledtimerwithtimeinterval:1.0f target:self selector:@selector(delaymethod) userinfo:nil repeats:no];
此方式要求必須在主線程中執行,否則無效。
是一種非阻塞的執行方式,
可以通過nstimer類的- (void)invalidate;取消執行。
[nsthread sleepfortimeinterval:1.0f]; [self delaymethod];
此方式在主線程和子執行緒中均可執行。
是一種阻塞的執行方式,
建方放到子執行緒中,以免卡住介面
沒有找到取消執行的方法。
double delayinseconds = 1.0;
__block viewcontroller* bself = self;
dispatch_time_t poptime = dispatch_time(dispatch_time_now, (int64_t)(delayinseconds * nsec_per_sec));
dispatch_after(poptime, dispatch_get_main_queue(), ^(void));
此方式在可以在引數中選擇執行的執行緒。
是一種非阻塞的執行方式,
沒有找到取消執行的方法。
重新延時執行的Js 實現
1.autocomplete 外掛程式,當使用者的輸入空閒0.5s 時,才向服務傳送請求。而不是使用者輸入每乙個字元都要請求伺服器。2.懶載入時,使用者拖動滾動條空閒0.5s時,才遍歷懶載入的img元素,這樣操作比較平滑。對每乙個操作,定義乙個唯一操作碼,重新延時執行時,清空該操作碼的執行體。重新定...
程式開機延時執行的指令碼
今天因為實施需要,一台裝置聯網是通過寬頻認證的,而我們的程式是放在開機啟動項中,所以導致程式啟動時,寬頻還沒連上網路程式已經啟動,程式報 網路 連不上服務錯誤 echo off ping 127.0.0.1 n 60 nul start cmd k c users lenovo desktop te...
Java專案啟動時執行指定方法的幾種方式
這個註解呢,可以在spring載入這個類的時候執行一次。來看一下下方 123 4567 891011 1213 1415 1617 1819 2021 component public class test 我第二個執行 autowired private t t 我第三個個執行 postconst...