在C#中检查线程是否正在运行

5
我已经在C#代码中创建了一个名为"ZipFolders"的函数。实际上,我是通过Unity按钮调用它的,当按下按钮时,尝试压缩目录中的文件夹。由于我同时想要做其他事情,所以我尝试在新线程中调用该函数。我的问题是如何检查该线程是否正在运行或已停止。我的代码:

onGUI():

if (GUI.Button (new Rect (390, 250, 100, 50), "ZIP_FILES")) {

        Thread thread = new Thread(new ThreadStart(zipFile));
        thread.Start();
}

我希望在更新函数中每次检查线程是否正在运行或已停止。我该怎么做?


1个回答

3

您可以使用 thread.ThreadState 属性。

编辑:

您可以像这样操作:

public class YourClass 
    {
        private Thread _thread;

        private void YourMethod() 
        {
            if (GUI.Button (new Rect (390, 250, 100, 50), "ZIP_FILES")) {

                _thread = new Thread(new ThreadStart(zipFile));
                _thread.Start();
            }            
        }

        private void YourAnotherMethod() 
        {
            if (_thread.ThreadState.Equals(ThreadState.Running)) 
            {
                //Do ....
            }
        }
    }

我该如何在另一个代码块中检查线程状态?我应该从哪里调用线程状态以便始终检查它? - Jose Ramon
thread 设为类变量,这样你就可以在任何地方调用它。 - Irshad

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接