日期:2014-05-18  浏览次数:20934 次

关于C# MessageBox.Show的问题
我在C#中写了一个提示框,提示并选择是否向数据库里面导入数据,但是每次导入的时候都是提示框点击确定以后,总是卡主,等导入完成以后,提示框才消失,这是什么原因啊?能不能那位兄弟帮忙解决一下啊


  if (DialogResult.OK == MessageBox.Show("你导入的是" + comboBox1.Text, "提示信息", MessageBoxButtons.OKCancel, MessageBoxIcon.Warning))
  {
   
  read();//此处执行将TXT文本数据导入数据库
  }


------解决方案--------------------
if (DialogResult.OK == MessageBox.Show("你导入的是" + comboBox1.Text, "提示信息", MessageBoxButtons.OKCancel, MessageBoxIcon.Warning))
{
Application.DoEvents();
read();//此处执行将TXT文本数据导入数据库
}

------解决方案--------------------
用异步线程完成数据导入,腾出UI线程。异步线程可参考BackgroundWorker组件。
if (DialogResult.OK == MessageBox.Show("你导入的是" + comboBox1.Text, "提示信息", MessageBoxButtons.OKCancel, MessageBoxIcon.Warning))
{

//read();//此处执行将TXT文本数据导入数据库
backgroundWorker1.RunWorkerAsync();
}

private void backgroundWorker1_DoWork(object sender, DoWorkEventArgs e) {
read();//此处执行将TXT文本数据导入数据库
}

private void backgroundWorker1_ProgressChanged(object sender, ProgressChangedEventArgs e){
//显示进度条,表明数据处理情况
}

private void backgroundWorker1_RunWorkerCompleted(object sender, RunWorkerCompletedEventArgs e){
//导入数据完成
}