我有一个应用程序,用户可以单击扫描按钮扫描图像以在应用程序中预览.当用户点击时,通常会显示“准备扫描”消息,并在扫描完成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;
}
基本上,您在扫描开始时禁用按钮,并在完成时启用它.
