2015-04-07 66 views
2

我們有一些(大)圖像文件。我們想從這些文件創建縮略圖,並同時記錄他們的MD5總和。讀取一次流多消費者

Idealy我們想要的程序來讀取這些文件只有一次,從來沒有定位回來。然而,由於數據服務於兩個消費者,儘管我們可以創建多個線程,但我們無法避免多次讀取這些文件。

所以要求是:假設一個只讀的只轉發流,如何使用它來提供new Bitmap(stream)md5.ComputeHash(stream)的調用? (該解決方案應擴大到其他流的消費者)

我們怎樣才能做到這一點?

回答

1

對於您的具體情況:

與其說md5.ComputeHash(stream)的,叫new CryptoStream(stream, md5, CryptoStreamMode.Read)
該物流將鏡像原始流,也將通過MD5散列器通過。
一旦流已讀至年底,md5實例將持有的哈希值。

+0

是哈希通過'md5.Hash'屬性訪問? –

+0

您的參數順序也是錯誤的 - 它是'new CryptoStream(stream,md5,CryptoStreamMode.Read)'。 –

+0

是的。哎呀;固定。 – SLaks