用於從外部裝置(多線程/定時)採樣「正確」的過程我開發,其中我從BLE設備在約50-200Hz的速率採樣的數據的Python腳本。截至目前,我正在做這個同步:在Python
while True:
if time_now > time_before + (1/sample_rate):
do_stuff()
這個偉大的工程,除了一個事實,即它完全阻塞線程和其他應用程序(如果我想用Qt的圖形用戶界面,例如結合)。什麼是正確的方式去解決這個問題?
- 我可以輕鬆實現多線程設置,其中每個「採樣器」(while循環)都有自己的線程嗎?
- 我應該實現定時器操作,以及如何確保腳本不殺死在等待新的樣本?
我的問題類似於this,但是,它是針對C#的。
我將在一個專用線程輪詢過程中分離,這將寫出樣品某處(存儲器,隊列,等等。),然後,在應用程序的其他部分,可用的時候我會閱讀的那些樣品。 的優點是硬件故障/塊不會阻止你的腳本邏輯 – BeerBaron
你需要在所有民意調查?設備是否不實施通知,以便每當特徵發生變化時都會異步並自動地通知您?查看BLE示例以瞭解如何爲給定特性啓用更改通知。 –