2016-03-15 65 views
2

我想顯示在Qt的多個視頻(在一個窗口中),但我得到了從一個獨特的插座在一個線程中的每個視頻數據,因爲我知道我們不能從另一個線程訪問Qt物件,所以我必須向主線程發出數據已準備就緒的信號,但是這對主線程是一種負擔,您可以想象當線程到達時,有10個或更多線程會向主線程發送信號,如果有的話,我是否可以這樣想?建議採用不同的方法?視頻在Qt的

我用Google搜索了很多,閱讀有關Qt的線程,但我需要有人來清除我的疑惑謝謝。

回答

2

別擔心,獨自信號不會負擔過重的主線程的事件循環,即使排隊連接比直接連接顯著慢,你仍然可以有幾十個,甚至可能是數百每秒不運行陷入困境。

只要確保您沒有使用連接來傳輸實際數據。由於您的線程在單個進程中,因此它們共享相同的尋址空間,因此您可以完全避免數據傳輸緩慢。

現在,你的主線程是否有足夠的處理能力,以顯示10個視頻窗口部件是一個完全不同的故事。

+0

沒有數據傳輸,但你也知道我會在主線程中更新所有的標籤,這不會是一個大量的工作,主線程? – mohammed

+2

我不這麼認爲。如果是這樣,您可以嘗試排隊更新並一次執行它們。但是,在您知道擁有它們之前,不要擔心性能問題,過早優化通常會浪費時間並且不必要地增加錯誤的複雜性和機會。 – dtech

+1

@ddriver +1 - 這是一個有據可查的概念,但經常被忽視(我犯了這個錯誤就夠了!)。先做些事情,然後擔心讓生活變得複雜。如果您仍然擔心以後您離得太近,可以隨時查看您的程序並查看您在哪裏丟失時間 - 或者您有多少空餘時間:) –