不知何故,我的线程过早停止,而它应该一直处于活动状态,直到状态变为 4,或者线程通过.Abort()
.
目前这是我开始我的线程的方式:
var thread = new Thread(() =>
{
var t = Thread.CurrentThread;
var cDown = new cDownloader(textBox1, textBox3.Text, this, 10);
updateThreads(t.ThreadState + ": " + t.Name, t);
});
thread.Start();
该线程在 cDownloader 类中执行几个函数:
- 构造函数 cDownloader(),它设置了几个变量。
- 构造函数触发 initLoad(),它启动一个计时器,并向它添加一个事件。
- 计时器滴答事件使用 HtmlAgilityPack 扫描网站,以查找具有类 fileThumb 的链接。
- 对于每个链接,该事件都会创建一个下载文件的新线程。
不知何故,该线程似乎激活了一切,甚至下载了文件,然后自行关闭,同时仍在运行计时器,这很奇怪,因此由于找不到当前线程而导致错误。
我没有.Abort()
在当前线程上调用方法。
所以我的问题是:为什么我的线程过早停止?