void DoTest(object arg) { string fileName = (string)arg; UpdateControls updateControls = new UpdateControls(Update_Controls); if (File.Exists("received_file")) { File.Delete("received_file"); } FileStream fs = File.OpenRead(fileName); if (fs == null) { return; } byte[] raw_file = new byte[fs.Length]; if (fs.Read(raw_file, 0, raw_file.Length) != raw_file.Length) { return; } fs.Close(); fs = null; DateTime initialStamp, finishStamp; bool firstIteration = true; ulong ticks_sum = 0; ulong iterations = 0; byte[] buf; OnData onData = new OnData(OnDataReceived); OnEnd onEnd = new OnEnd(OnTransactionEnd); do { initialStamp = DateTime.Now; buf = raw_file; if (File.Exists("received_file")) { File.Delete("received_file"); } ReceiverPackLib.ReceiverPackLib receiverPackLib = new ReceiverPackLib.ReceiverPackLib(onData, onEnd, null); SenderPackLib.SenderPackLib senderPackLib = new SenderPackLib.SenderPackLib(buf); senderPackLib.AddData(buf, false); #if false senderPackLib.AddLast(); bool SameChunk; while ((buf = senderPackLib.GetChunk(out SameChunk)) != null) { byte[] predMsg = receiverPackLib.ReceiverOnData(buf, 0); if (predMsg != null) { byte[] predAckMsg = senderPackLib.SenderOnData(predMsg, 0); receiverPackLib.ReceiverOnData(predAckMsg, 0); } } #endif finishStamp = DateTime.Now; object[] args = new object[4]; args[0] = firstIteration; if (firstIteration) { args[1] = (ulong)(finishStamp.Ticks - initialStamp.Ticks); firstIteration = false; } else { ticks_sum += (ulong)(finishStamp.Ticks - initialStamp.Ticks); iterations++; args[1] = ticks_sum / iterations; } args[2] = (ulong)iterations; args[3] = true; Invoke(updateControls, args); while (checkBoxPause.Checked) { Thread.Sleep(1000); } } while (checkBoxDoUntilStopped.Checked); }
void DoTest(object arg) { string fileName = (string)arg; UpdateControls updateControls = new UpdateControls(Update_Controls); if (File.Exists("received_file")) { File.Delete("received_file"); } FileStream fs = File.OpenRead(fileName); if (fs == null) { return; } byte[] raw_file = new byte[fs.Length]; if (fs.Read(raw_file, 0, raw_file.Length) != raw_file.Length) { return; } fs.Close(); fs = null; DateTime initialStamp,finishStamp; bool firstIteration = true; ulong ticks_sum = 0; ulong iterations = 0; byte[] buf; OnData onData = new OnData(OnDataReceived); OnEnd onEnd = new OnEnd(OnTransactionEnd); do { initialStamp = DateTime.Now; buf = raw_file; if (File.Exists("received_file")) { File.Delete("received_file"); } ReceiverPackLib.ReceiverPackLib receiverPackLib = new ReceiverPackLib.ReceiverPackLib(onData,onEnd,null); SenderPackLib.SenderPackLib senderPackLib = new SenderPackLib.SenderPackLib(buf); senderPackLib.AddData(buf,false); #if false senderPackLib.AddLast(); bool SameChunk; while ((buf = senderPackLib.GetChunk(out SameChunk)) != null) { byte[] predMsg = receiverPackLib.ReceiverOnData(buf,0); if (predMsg != null) { byte[] predAckMsg = senderPackLib.SenderOnData(predMsg, 0); receiverPackLib.ReceiverOnData(predAckMsg, 0); } } #endif finishStamp = DateTime.Now; object[] args = new object[4]; args[0] = firstIteration; if (firstIteration) { args[1] = (ulong)(finishStamp.Ticks - initialStamp.Ticks); firstIteration = false; } else { ticks_sum += (ulong)(finishStamp.Ticks - initialStamp.Ticks); iterations++; args[1] = ticks_sum / iterations; } args[2] = (ulong)iterations; args[3] = true; Invoke(updateControls, args); while (checkBoxPause.Checked) { Thread.Sleep(1000); } } while (checkBoxDoUntilStopped.Checked); }