【问题标题】:Check whether the thread is running or not in c#在c#中检查线程是否正在运行
【发布时间】:2015-12-03 10:34:19
【问题描述】:

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

onGUI():

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

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

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

【问题讨论】:

标签: c# multithreading


【解决方案1】:

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

【讨论】:

  • 如何检查另一个代码块中的线程状态?我应该从哪里调用线程状态以便一直检查它?
  • thread 设为类变量,您可以在任何地方调用它。
猜你喜欢
  • 1970-01-01
  • 2012-10-27
  • 2011-05-19
  • 1970-01-01
  • 2013-04-05
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-06-10
相关资源
最近更新 更多