2017-08-16 63 views

回答

2

Dispatch Sources 可用於監視UNIX信號。

下面是一個簡單的例子,在從併發編程指南的 "Monitoring Signals"部C代碼的夫特3平移。

import Dispatch // or Foundation 

signal(SIGINT, SIG_IGN) // // Make sure the signal does not terminate the application. 

let sigintSrc = DispatchSource.makeSignalSource(signal: SIGINT, queue: .main) 
sigintSrc.setEventHandler { 
    print("Got SIGINT") 
    // ... 
    exit(0) 
} 
sigintSrc.resume() 

請注意,這需要一個有效的GCD事件循環,例如,與

dispatchMain() 

在命令行程序中。

+1

記得要'進口調度! – paper1111

+0

@ paper1111:你說得對。它爲我工作,因爲我的測試代碼已經導入基礎。 –