2017-08-16 25 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:你说得对。它为我工作,因为我的测试代码已经导入基础。 –