我正在研究分析來自多臺攝像機的視頻幀的系統。每個攝像頭將在發送視頻幀之前初始化一個WCF會話並分配一個GUID進行識別。隨着攝像機數量的增長,處理負載遠遠高於服務器可以實現的時間。因此,我正在寫一個班級來管理數據,因爲這些數據是從運動激活的攝像機發出的。管理流式視頻幀的隊列字典
來自攝像機的每幀必須與來自其他攝像機的幀並行分析。每個攝像機將用幀填充隊列以管理數據的FIFO性質。
隊列的管理讓我尋找想法。最初我打算創建一個字典並插入每個GUID-Queue對。在編寫代碼一段時間後,我開始認爲這不是最好的方法。有沒有人有什麼建議?
一些簡單的示例代碼:
namespace DataCollection
{
[ServiceBehavior(Name = "ClientDataView", InstanceContextMode = InstanceContextMode.Single)]
public class DataCollectionService : IDataCollectionService
{
//Dictionary of Guid-Queue pairs
CameraCollection CameraArray = new CameraCollection();
public Guid RegisterCamera()
{
Guid ID = new Guid();
WorkQueue FrameQueue = new WorkQueue();
CameraArray.AddCamera(ID, FrameQueue)
return ID;
}
public bool SendData(Guid ID, FrameReady newFrame)
{
Frame dataFrame = newFrame.OpenFrame;
WorkQueue que = CameraArray.GetQueueReference(ID);
que.QueueFrame(dataFrame);
return true;
}
}
}
目前,如果我硬編碼家居的相機系統工作的定數。讓它適應不同數量的相機是更具挑戰性的。任何建議或意見,將不勝感激。
基於你的'parallel'標籤我假設你在.NET 4上? – 2012-02-09 06:08:44
@ M.Babcock是的,我正在.NET 4.0框架內開發。 – Ritz 2012-02-09 06:11:39