簡體   English   中英

線程間的“溝通”問題

[英]Inter thread 'communication' issues

在我的應用程序中,我有兩個線程,首先是gui線程,我有代碼,當用戶按下每個按鈕時調用。

在第二個線程中,我有視頻錄制機制,我可以在其中啟動,捕獲,錄制(錄制)視頻到文件。

當我試圖從第一個線程“開始錄制”時出現問題 - 它崩潰了。 所以我必須在gui線程中設置某種布爾'通信標志',然后在視頻線程中檢查它們,然后從視頻線程中“記錄視頻”。

我認為這樣的旗幟很糟糕 - 這樣做的簡單方法是什么?

這是你在那里觸及的一個相當廣泛的話題。 但是Cocoa確實包含一些有用的線程間通信方法。 你可能想看一下

[NSObject performSelector:onThread:withObject:waitUntilDone:]

只有在第二個線程中運行NSRunLoop時,這才有效。 否則你的視頻錄制課程中會有一個bool @property。 這將是你建議的旗幟。 從主線程更改其值並從記錄循環中的輔助線程檢查其值以執行操作。

不要忘記你的@property聲明需要是原子的。

您可能還想使用NSOperationQueue或塊,很難從您的問題中看出哪種方法最有效。 我猜也取決於你的編碼偏好。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM