在swift中使用執行緒休眠

2021-09-06 16:47:59 字數 995 閱讀 5274

c#和php都有sleep讓執行緒休眠指定時間後再繼續執行後面的**,swift中應該如何呢?

首先,找一下objective-c版本是怎麼做的

[self performselector:@selector(didtimeout:) withobject:nil afterdelay:60];

// 順便演示下取消

[nsobject cancelpreviousperformrequestswithtarget:self selector:@selector(didtimeout:) object:nil]

經過查詢,swift中可以這麼做:

var timer = nstimer.scheduledtimerwithtimeinterval(0.1, target: self, selector: selector("someselector"), userinfo: nil, repeats: false)

func someselector()

或者這樣:

var delta: int64 = 1 * int64(nsec_per_sec)

var time = dispatch_time(dispatch_time_now, delta)

dispatch_after(time, dispatch_get_main_queue(), );

// 當然沒這麼恐怖,time可以直接傳數字時間

dispatch_after(1, dispatch_get_main_queue(), )

按c#的threading.thread.sleep(5000)的寫法,swift中有:

nsthread.sleepfortimeinterval(3)
可實際上,乙個跟php完全一樣的用法是完全可行的:

sleep(3)

在Linux中使用執行緒

我並不假定你會使用linux的執行緒,所以在這裡就簡單的介紹一下。如果你之前有過多執行緒方面的程式設計經驗,完全可以忽略本文的內容,因為它非常的初級。首先說明一下,在linux編寫多執行緒程式需要包含標頭檔案pthread.h。也就是說你在任何採用多執行緒設計的程式中都會看到類似這樣的 1 incl...

在新執行緒中使用NSTimer

方法一 void viewdidload void call1 void call2 方法二 void bool animated void timerstart void bool animated 方法三 timer nstimer timerwithtimeinterval 5.0 targe...

在多執行緒中使用 IHTMLDocument2 指標

問題 在多執行緒中使用ihtmldocument2 指標會出現錯誤 解決 使用列集,散集來傳遞ihtmldocument2 指標。宣告全域性變數istream pstream 1 將phtmldocument指標傳遞給pstream。comarshalinterthreadinte ceinstre...