VintaSoft Twain .NET SDK Discussions
Questions, comments and suggestions concerning VintaSoft Twain .NET SDK.
Board index < VintaSoft Twain < VintaSoft Twain .NET SDK Discussions
DateTime lastEvent = DateTime.Now;
List<double> spans = new List<double>();
private void _device_ImageAcquired(object sender, ImageAcquiredEventArgs e)
{
DateTime start = DateTime.Now;
var span = (start - lastEvent).TotalMilliseconds;
Debug.WriteLine("Start analyze at " + start.ToString("HH:mm:ss.ffffzzz") + ", diff from prev start is " + span + "ms");
lastEvent = start;
spans.Add(span);
if (_parentForm.InvokeRequired)
{
_parentForm.BeginInvoke(new Action<object, ImageAcquiredEventArgs>(_device_ImageAcquired), sender, e);
}
else
{
//benchmark : don't do anything
//AnalyseAcquiredImage(e.Image);
// debug only : dispose. discard in prod.
if (!e.Image.IsDisposed)
e.Image.Dispose();
}
Debug.WriteLine("TaskRun " + DateTime.Now.ToString("HH:mm:ss.ffffzzz") + ", so event take " + (DateTime.Now - start).TotalMilliseconds + "ms to be processed");
//if (e.EndOfJob)
Debug.WriteLine("Average span is " + (spans.Sum() / spans.Count) + "ms");
}
As you can see, I'm just doing nothing but disposing the image, and I still reproduce the issue.