void ProcessWorkComplete(Stream stream, bool byteswap = false)
{
TimeSpan elapsed = DateTime.Now - mWorkSent;
BinaryReader br = new BinaryReader(stream);
bool solutionFound = (br.ReadByte() != 0);
uint solutionValue = br.ReadUInt32();
mHashesDone = br.ReadUInt32();
if (byteswap)
{
solutionValue = (uint)IPAddress.NetworkToHostOrder((int)solutionValue);
mHashesDone = (uint)IPAddress.NetworkToHostOrder((int)mHashesDone);
}
mTotalHashesDone += mHashesDone;
mTheMan.WorkComplete(this, solutionFound, solutionValue);
mHashrate = mHashesDone / elapsed.TotalSeconds;
mDesiredHashes = Math.Max((uint)mHashrate * 5, 50);
//Console.WriteLine("Hashes: {0} Time: {1} Hashrate: {0:N}", mHashesDone, elapsed.TotalSeconds, mHashrate);
mState = State.Ready;
}