我的线程应该返回一个数组列表并将其放入文件中。
我的问题是它就停止了(至少我是这么认为的)。
主题:
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 != "")
{...
获取文件:
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类。
关于C#|线程执行后程序不执行任何操作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7717408/