这一定是一个非常愚蠢的问题。我正在尝试在新线程中运行一个耗时的过程,以便能够显示进度条。我以前从未使用过线程。我必须做错事,因为当我使用该.Start()
方法时,似乎什么都没有发生。
private void btnStart_Click(object sender, EventArgs e)
{
clsScrap oScrap = new clsScrap(txtInputFilename.Text,txtImgSrc.Text);
Thread ScrapThread = new Thread(new ThreadStart(oScrap.Scrap));
ScrapThread.Start();
while (oScrap.GetLinkCount() < 0) ;
myProgressBar.Minimum = 1;
myProgressBar.Maximum = oScrap.GetLinkCount();
while (ScrapThread.IsAlive)
{
Thread.Sleep(1000 * 30);
myProgressBar.Value = oScrap.GetCurrLinkNo();
}
}
我在 oScrap.Scrap() 的开头放置了一个断点,但它永远不会到达那里。在该ScrapThread.Start();
行之后它只是移动到下一个while循环并卡在那里(该函数oScrap.GetLinkCount()
假设在初始化后快速返回正值)
我究竟做错了什么?先谢谢了。