1

我想在我的 C# 桌面应用程序中删除或阻止异常。当我的项目加载其启动画面时发生此问题..

启动画面调用的代码是

private void SplashForm()
        {
            Splash newSplashForm = new Splash();
            newSplashForm.ShowDialog();
            newSplashForm.Dispose();
        }

 public MainForm(string filearg) {
             Thread t1 = new Thread(new ThreadStart(SplashForm));
             t1.Start();
             Thread.Sleep(TimeSpan.FromSeconds(5)); // The amount of time we want our splash form visible
             t1.Abort();
             Thread.Sleep(7000);
}

我怎样才能删除这个异常

4

2 回答 2

2

我怎样才能删除这个异常

   t1.Abort();

不要调用产生该异常的东西。使用更好的线程间通信事件协同关闭工作线程。

在这种情况下,调用Control.BeginInvoke实例Splash以调用其Close方法。

于 2012-06-25T10:45:36.733 回答
0
    private void SplashForm()
    {
        try
        {
            Splash newSplashForm = new Splash();
            newSplashForm.ShowDialog();
            newSplashForm.Dispose();
        }
        catch (System.Threading.ThreadAbortException)
       {
            System.Threading.Thread.ResetAbort();
       }
    }

如果您只想忽略线程中的异常,则只需使用空的 catch 块

    private void SplashForm()
    {
        try
        {
            Splash newSplashForm = new Splash();
            newSplashForm.ShowDialog();
            newSplashForm.Dispose();
        }
        catch { }
    }
于 2012-06-25T10:45:02.240 回答