我从以前的开发人员那里继承了一些代码,该应用程序在执行特定任务时偶尔会出现线程中止异常。
private void popup()
{
Thread th = new Thread(() =>
{
try
{
OpenForm();
}
catch (ThreadAbortException ex)
{
Console.WriteLine("Thread was forcibly aborted");
}
});
th.Start();
while (fromflag)
{
}
th.Abort();
}
该线程打开一个带有动画加载 gif 的弹出窗口,从服务器下载文件,然后完成。完成后我将 fromflag 设置为 false。我无法设置计时器,因为下载文件可能需要任何时间。
我该如何以不同的方式编写它,这样我就不必使用 th.Abort 并且线程在完成时会自行关闭?