I'm writting a fingerprint apps which extracts fingerprint templates with both digital
persona and SourceAFIS. But the SourceAFIS extraction takes time so i used a
backgroundWorker to run it. Even at that, it still freezes my GUI for approximately 30
seconds. I don't know what i've done wrongly in the code. Here is an extract
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();
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;
thumbR = null; break; case 2: getTemplate(printTemplates[i], ref T_indexR, (i + 1));
getPartialPrintsTemplate(printSamples[i], ref partial_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;
indexR = null; break; case 3: getTemplate(printTemplates[i], ref T_middleR, (i + 1));
getPartialPrintsTemplate(printSamples[i], ref partial_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;
middleR = null; break; case 4: getTemplate(printTemplates[i], ref T_ringR, (i + 1));
getPartialPrintsTemplate(printSamples[i], ref partial_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;
= null; break; case 5: getTemplate(printTemplates[i], ref T_smallR, (i + 1));
getPartialPrintsTemplate(printSamples[i], ref partial_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;
smallR = null; break; case 6: getTemplate(printTemplates[i], ref T_thumbL, (i + 1));
getPartialPrintsTemplate(printSamples[i], ref partial_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;
thumbL = null; break; case 7: getTemplate(printTemplates[i], ref T_indexL, (i + 1));
getPartialPrintsTemplate(printSamples[i], ref partial_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;
indexL = null; break; case 8: getTemplate(printTemplates[i], ref T_middleL, (i + 1));
getPartialPrintsTemplate(printSamples[i], ref partial_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;
middleL = null; break; case 9: getTemplate(printTemplates[i], ref T_ringL, (i + 1));
getPartialPrintsTemplate(printSamples[i], ref partial_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;
(printTemplates[i], ref T_smallL, (i + 1));
partial_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;
(fingerprint); if (fingerprint.Template != null) partial_T_smallL = fingerprint.Template; else partial_T_smallL = null; break; } } } }