为什么OpenFileDialogue会导致C#Forms应用程序的调试失败?

时间:2015-12-01 20:28:40

标签: c# .net debugging openfiledialog

过去两天我一直在努力为这个问题寻找解决方案。基本上当我调试我的表单应用程序时,我有一个带有onclick事件处理程序的按钮。这是我的处理程序中的代码。

private void btnBrowseReqDoc_Click(object sender, EventArgs e)
  {
     OpenFileDialog FileDlg = new OpenFileDialog();
     FileDlg.InitialDirectory = m_ConfigFile.GetReqDocDir();
     FileDlg.Filter = "All Files (*.*)|*.*|Word 97-2003 (*.doc)|*.doc|Word 2007 (*.docx)|*.docx";
     FileDlg.FilterIndex = 1;

     if (FileDlg.ShowDialog() == System.Windows.Forms.DialogResult.OK)
     {
        txtWordReqDoc.Text = FileDlg.FileName;

        SetProgressControls(false);
     }

     this.btnExecute.Enabled = CanEnableExecuteBtn();
     lblStatus.Visible = !(CanEnableExecuteBtn());
  } 

大约60%到70%的时间,此操作无法完成。出现了一个部分窗口,但此时它基本上就是死亡的窗口。我必须重新启动以恢复我的机器。这个问题似乎并不罕见。根据我的研究,大多数人似乎觉得这与线程有关。我的program.cs总是设置了这个属性。这是我的program.cs代码。

  static class Program
{
  /// <summary>
  /// The main entry point for the application.
  /// </summary>
  [STAThread]
  static void Main()
  {
     Application.EnableVisualStyles();
     Application.SetCompatibleTextRenderingDefault(false);
     Application.Run(new MainForm());
  }
}

这只是某种线程争用吗?为什么它有时会工作而不能在其他时间工作? OpenFileDialogue应该在后台进程中运行吗?我调试时有一个问题的解决方法(基本上只是粘贴在文件路径中),我只是想在这里了解更多有关此行为的信息。

0 个答案:

没有答案