I'm writting a fingerprint application using an SDK i downloaded online, SourceAFIS. I noticed that the template extraction took a while to complete, causing the GUI to freeze and sometimes shows ''Not Responding'' so i thought using a backgroundworker would solve my problem but it still didn't help out. The extraction takes approximately 3 seconds per fingerprint sample. Please how can i get that hangging to stop, it makes the application look bad. Thanks
This is an extract.
<pre>private void enroll_Click(object sender, EventArgs e)
{
if (enrollmentWorkerBW.IsBusy == false)
{
enroll.Enabled = false;
enroll.Text = "Wait !";
progressPB.Visible = true;
enrollmentWorkerBW.RunWorkerAsync();
}
else
{
MessageBox.Show("Enrollment is already Running","Enrollment Message",MessageBoxButtons.OK,MessageBoxIcon.Information);
}
}
private void enrollmentWorkerBW_DoWork(object sender, DoWorkEventArgs e)
{
this.Invoke(new Function(delegate()
{
AfisEngine AFIS = new AfisEngine();
Bitmap bitmap = null;
DPFP.Capture.SampleConversion Convertor = new DPFP.Capture.SampleConversion();
Fingerprint fingerprint;
for (int i = 0; i < printTemplates.Length; i++)
{
switch (i + 1)
{
case 1:
getTemplate(printTemplates[i], ref T_thumbR, (i + 1));
getSample(printSamples[i], ref S_thumbR, (i + 1));
bitmap = null;
Convertor.ConvertToPicture(printSamples[i], ref bitmap);
fingerprint = new Fingerprint();
fingerprint.BitmapImage = bitmap;
AFIS.Extract(fingerprint);
if (fingerprint.Template != null)
partial_T_thumbR = fingerprint.Template;
else
partial_T_thumbR = null;
break;
case 2:
getTemplate(printTemplates[i], ref T_indexR, (i + 1));
getSample(printSamples[i], ref S_indexR, (i + 1));
bitmap = null;
Convertor.ConvertToPicture(printSamples[i], ref bitmap);
fingerprint = new Fingerprint();
fingerprint.BitmapImage = bitmap;
AFIS.Extract(fingerprint);
if (fingerprint.Template != null)
partial_T_indexR = fingerprint.Template;
else
partial_T_indexR = null;
break;
case 3:
getTemplate(printTemplates[i], ref T_middleR, (i + 1));
getSample(printSamples[i], ref S_middleR, (i + 1));
bitmap = null;
Convertor.ConvertToPicture(printSamples[i], ref bitmap);
fingerprint = new Fingerprint();
fingerprint.BitmapImage = bitmap;
AFIS.Extract(fingerprint);
if (fingerprint.Template != null)
partial_T_middleR = fingerprint.Template;
else
partial_T_middleR = null;
break;
case 4:
getTemplate(printTemplates[i], ref T_ringR, (i + 1));
getSample(printSamples[i], ref S_ringR, (i + 1));
bitmap = null;
Convertor.ConvertToPicture(printSamples[i], ref bitmap);
fingerprint = new Fingerprint();
fingerprint.BitmapImage = bitmap;
AFIS.Extract(fingerprint);
if (fingerprint.Template != null)
partial_T_ringR = fingerprint.Template;
else
partial_T_ringR = null;
break;
case 5:
getTemplate(printTemplates[i], ref T_smallR, (i + 1));
getSample(printSamples[i], ref S_smallR, (i + 1));
bitmap = null;
Convertor.ConvertToPicture(printSamples[i], ref bitmap);
fingerprint = new Fingerprint();
fingerprint.BitmapImage = bitmap;
AFIS.Extract(fingerprint);
if (fingerprint.Template != null)
partial_T_smallR = fingerprint.Template;
else
partial_T_smallR = null;
break;
case 6:
getTemplate(printTemplates[i], ref T_thumbL, (i + 1));
getSample(printSamples[i], ref S_thumbL, (i + 1));
bitmap = null;
Convertor.ConvertToPicture(printSamples[i], ref bitmap);
fingerprint = new Fingerprint();
fingerprint.BitmapImage = bitmap;
AFIS.Extract(fingerprint);
if (fingerprint.Template != null)
partial_T_thumbL = fingerprint.Template;
else
partial_T_thumbL = null;
break;
case 7:
getTemplate(printTemplates[i], ref T_indexL, (i + 1));
getSample(printSamples[i], ref S_indexL, (i + 1));
bitmap = null;
Convertor.ConvertToPicture(printSamples[i], ref bitmap);
fingerprint = new Fingerprint();
fingerprint.BitmapImage = bitmap;
AFIS.Extract(fingerprint);
if (fingerprint.Template != null)
partial_T_indexL = fingerprint.Template;
else
partial_T_indexL = null;
break;
case 8:
getTemplate(printTemplates[i], ref T_middleL, (i + 1));
getSample(printSamples[i], ref S_middleL, (i + 1));
bitmap = null;
Convertor.ConvertToPicture(printSamples[i], ref bitmap);
fingerprint = new Fingerprint();
fingerprint.BitmapImage = bitmap;
AFIS.Extract(fingerprint);
if (fingerprint.Template != null)
partial_T_middleL = fingerprint.Template;
else
partial_T_middleL = null;
break;
case 9:
getTemplate(printTemplates[i], ref T_ringL, (i + 1));
getSample(printSamples[i], ref S_ringL, (i + 1));
bitmap = null;
Convertor.ConvertToPicture(printSamples[i], ref bitmap);
fingerprint = new Fingerprint();
fingerprint.BitmapImage = bitmap;
AFIS.Extract(fingerprint);
if (fingerprint.Template != null)
partial_T_ringL = fingerprint.Template;
else
partial_T_ringL = null;
break;
case 10:
getTemplate(printTemplates[i], ref T_smallL, (i + 1));
getSample(printSamples[i], ref S_smallL, (i + 1));
bitmap = null;
Convertor.ConvertToPicture(printSamples[i], ref bitmap);
fingerprint = new Fingerprint();
fingerprint.BitmapImage = bitmap;
AFIS.Extract(fingerprint);
if (fingerprint.Template != null)
partial_T_smallL = fingerprint.Template;
else
partial_T_smallL = null;
break;
}
}
}
}