我使用 metro 框架来创建启动画面,但是当我对线程使用.Abort()
函数时,启动画面根本不起作用。但是如果我使用.Suspend()
它就可以工作,但即使在主窗体加载后,启动画面也不会释放。 这是代码,
public Login()
{
Thread t = new Thread(new ThreadStart(loading));
t.Start();
InitializeComponent();
for(int i = 0; i <= 1000; i++)
{
Thread.Sleep(10);
t.Abort();
}
}
void loading()
{
Splash frmsplash = new Splash();Application.Run(frmsplash);
}
这是启动画面代码,
public partial class Splash : MetroFramework.Forms.MetroForm
{
public Splash()
{
InitializeComponent();
}
}
Thread.Abort 一次又一次地引发,直到它被 Thread.ResetAbort 处理...请考虑使用联接或中断并等待线程退出。
我找到了一个解决方案,但不知道它是否适用于每个人,我只是t.Abort()
放在 for 循环之外,它确实对我有用。