我正在研究实时成像系统。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