我正在研究實時成像系統。C#後臺線程在UI中導致滯後
UI線程:通過定時器以14 fps的速度從攝像頭抓取圖像並進行一些處理/顯示。每2秒鐘,通過處理選擇3張圖像(每張大約1mb),寫入磁盤。這些放在共享隊列中。
第二個線程:將映像出隊並寫入磁盤。已被賦予「最低」的優先權。
當第二個線程正在執行寫操作時,它會從UI線程中消耗一個明顯的perf塊,並導致捕獲降至14 fps以下。不能接受的。
我能在這裏做什麼?我不介意如果寫入需要更長的時間並排隊等待,那麼會有大量的RAM和常規暫停,以便寫入時間能夠趕上。關鍵因素是UI線程有足夠的果汁工作在14 fps。
你是否從後臺線程調用任何UI更新?它確實不應該影響你的用戶界面。 – 2010-03-03 12:43:11
等一下,你爲什麼要在UI線程上從相機中抓取圖像? – 2010-03-03 12:44:37
沒有人擁有單核CPU了。你正在做某種鎖定,會減慢捕捉圖像的線程。 – 2010-03-03 13:40:53