I have a few large object graphs which I have serialised, and some of them take a few moments to deserialise.
At this stage, I'm quite happy with my little "Please Wait..." box which appears and then disappears at completion, but I was just toying with the idea of having some sort of progress bar in the event that deserialisation starts taking longer.
It doesn't seem like there's any way to get the progress of the built-in Deserialize()
method for the BinaryFormatter
object. I suspect that had such a feature been included, there would be some sort of asynchronous callback which would poll whenever a block of bytes was read from the stream.
Have any of you seen an implementation of ProgressBar-like behaviour with object serialisation/deserialisation?
I've thought about this before- the only way that I can think of to even approximate it would be to wrap the Stream that is being deserialized and keep track of the position as the Formatter reads it. That assumes, however, that the Formatter reads linearly and continuously as it deserializes, and there is no guarantee that it does.