当我的程序加载时,我在后台线程上显示启动屏幕。一旦加载,我将中止线程,因为它的唯一目的是显示“正在加载”启动画面。
我的问题是,当中止线程时,它会抛出ThreadAbortException
用户只需单击“继续”即可。
我该如何处理这个问题?我试图像这样抑制它 -->
try
{
Program.splashThread.Abort();
}
catch(Exception ex)
{
}
但我有一种预感,这会让我在这里大喊大叫,但无论如何都不起作用。
Thanks!
您不需要取消线程。我用代码来举例说明。
在闪屏形式中:
public void CloseSplash()
{
Invoke((MethodInvoker)delegate
{
this.Close();
});
}
在 Program.cs 文件中:
private static Splash _splash = null;
public static void CloseSplash()
{
if (_splash!= null)
{
_splash.CloseSplash();
}
}
现在,当您的 Main 方法启动时,在线程中显示启动画面:
Thread t = new Thread(new ThreadStart(delegate
{
_splash = new Splash();
_splash.ShowDialog();
}));
t.Start();
...当你想要它关闭时,只需关闭它即可:
Program.CloseSplash();
那么你就不需要担心中止线程;它会优雅地退出。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)