我的线程应返回一个数组列表并将其放入文件中。
我的问题是它只是停止了(至少我是这样看的)。
线:

 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类。

08-27 10:36