2012-01-13 21 views
2

我在Mac上用C++編寫應用程序。我想檢測正在安裝和卸載的驅動器,因此我使用DiskArbitration框架。我通過DARegisterDiskAppearedCallbackDARegisterDiskDisappearedCallback註冊了一些回調函數,但這些函數只有在有runloop時纔會觸發。從Qt觸發OSX runloop

什麼是啓動合適的runloop的最佳方式?

QThread與CFRunLoopRun(聽起來有點過分)?

請詳細說明一下,我不太熟悉線程。

+0

甚至可以從'QThread'執行'CFRunLoopRun'嗎?我想將它用於沒有像'DASessionSetDispatchQueue'這樣的專門方法的庫。 – dashesy 2015-09-22 01:34:28

回答

2

在OS X 10.7+上,您可以使用DASessionSetDispatchQueue在您選擇的調度隊列上調用回調函數。然後,您可以將回調中的數據轉發到常規的Qt事件循環中。