我有一个应用程序,用户可以单击扫描按钮扫描图像以在应用程序中预览.当用户点击时,通常会显示“准备扫描”消息,并在扫描完成100%时消失. 扫描工作正常.问题是,如果我在执行它的
扫描工作正常.问题是,如果我在执行它的过程中多次按下扫描按钮进行压力测试,应用程序完全挂起,消息就会停留在那里,我不得不重新启动整个应用程序.
代码:这只是一小部分
private void ScanStripButton_Click(object sender, EventArgs e) { if (SCAN_INTO_BATCH) { GENERATE_BATCH_FOLDER = true; StartTwainScan(); } }
关于如何防止这个问题的任何想法?
感谢帮助
编辑:
public void StartTwainScan() { Boolean EnableUI = false; Boolean ADF = false; Boolean EnableDuplex = false; if (Properties.Settings.Default.TwainShow.Equals("1")) { EnableUI = true; } if (Properties.Settings.Default.ScanType.Equals("2")) { ADF = true; } if (Properties.Settings.Default.DuplexEnable.Equals("1")) { EnableDuplex = true; } var rs = new ResolutionSettings { Dpi = GetResolution(), ColourSetting = GetColorType() }; var pg = new PageSettings() { Size = GetPageSize() }; var settings = new ScanSettings { UseDocumentFeeder = ADF, ShowTwainUI = EnableUI, ShowProgressIndicatorUI = true, UseDuplex = EnableDuplex, Resolution = rs, Page = pg }; try { TwainHandler.StartScanning(settings); } catch (TwainException ex) { MessageBox.Show(ex.Message); //Enabled = true; //BringToFront(); } }这不是正确的答案,但是您没有显示足够的代码来为您提供正确的代码.它应该指向正确的方向.
private void ScanStripButton_Click(object sender, EventArgs e) { ScanStripButton.Enabled = false; if (SCAN_INTO_BATCH) { GENERATE_BATCH_FOLDER = true; StartTwainScan(); } ScanStripButton.Enabled = true; }
基本上,您在扫描开始时禁用按钮,并在完成时启用它.