我使用了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();
}
}
答案 0 :(得分:1)
Thread.Abort一次又一次地引发,直到由Thread.ResetAbort处理...考虑使用连接或中断并等待线程退出。
答案 1 :(得分:0)
我找到了一个解决方案,但不知道它是否对每个人都适用,我只是将t.Abort()
放在for循环之外,它确实对我有用。