我們有一個應用程序,我們需要將一個數據流中的某些數據反序列化爲多個對象。如何在C#中通過多個調用遍歷數組
Data數組表示一些可變長度的消息打包在一起。流中沒有消息分隔代碼。
我們想要做的事,如:
void Decode(byte[] Data)
{
Object0.ExtractMessage(Data);
Object1.ExtractMessage(Data);
Object2.ExtractMessage(Data);
...
}
每個過程數據調用知道在哪裏可以在陣列中啓動。理想情況下,我們會在不通過DataIx
引用的情況下執行此操作。
要在C++中執行此操作,我們只需將指針移交到數組中,並且每個ProcessData函數都會根據需要增加它。
每個對象類都知道自己的消息是如何序列化的,並且可以依賴於(在C++中)在流中下一條消息的開始處返回指針。
是否有一些內置的機制,我們可以用來做到這一點(不去unsafe
)?操作頻率很高(〜10kps),非常輕便。我們也不想去複製或修剪陣列。
感謝您的幫助。
我知道你說你不想使用索引,但我過去如何做到這一點是傳入一個開始索引並返回下一個索引以繼續。 – 2009-12-01 01:19:14
我可以,如果沒有其他辦法,我會這樣做,這也是我們過去的做法。只是想知道是否有一個更好的方法? – 2009-12-01 01:20:33