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

标签 c# multithreading

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

onGUI():

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

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

我希望在更新函数中检查线程每次运行或停止的时间。我该怎么做?

最佳答案

您可以使用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 ....
            }
        }
    }

关于c# - 在c#中检查线程是否正在运行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34063612/

相关文章:

c# - 无法绑定(bind)到 DataContext

python - threading.Thread 如何在 Python 中产生剩余的量子?

c# - 带回调的双工服务

c# - C# setter 中的堆栈溢出异常

c# - 客户端通常在几十分钟后与服务器断开连接

c - 无法使用 pthread_cond_signal 向 C 中的另一个进程发送信号

c - 特定线程数的 OpenMP 急剧减速

c# - 散列和加盐密码字段

multithreading - 使用多核解决迷宫?

java - 在Java中,构造函数中的final字段赋值涉及到哪些操作?