我的线程应返回一个数组列表并将其放入文件中。
我的问题是它只是停止了(至少我是这样看的)。
线:
ArrayList files = new ArrayList();
Thread getF = new Thread(delegate()
{
files = GetFiles(path);
});
getF.Start();
if (getF.ThreadState == ThreadState.Stopped)
{
MessageBox.Show(files.Count.ToString());
foreach (string file in files)
{
if (file != "")
{...
getFiles:
ArrayList results = new ArrayList();
try
{
*loops**code*...
results.Add(srl);//add file to arrFiles
*end loops*
MessageBox.Show("Complete");
return results;
}
该程序只是给我MessageBox.Show(“ Complete”),然后什么也不做。
提前致谢。
最佳答案
getF.Start();
if (getF.ThreadState == ThreadState.Stopped)
{
//...
}
该if()语句将永远不会执行。线程完成工作需要时间。您将必须插入getF.Join(),但这使使用线程的要点失去了意义。
使用BackgroundWorker类。