【问题标题】:detect a not responding thread and terminate it?检测到没有响应的线程并终止它?
【发布时间】:2013-11-16 20:36:56
【问题描述】:

有时后台线程运行缓慢,就像,不响应,响应,不响应......

是否可以检测到然后终止它然后重新启动它? 我做这样的线程。 Form3 仅包含一个 Web 浏览器控件,该控件仅用于导航和搜索 Web 文档。

Thread ab1 = new Thread(new ThreadStart(ThreadProc));
ab1.SetApartmentState(ApartmentState.STA);
ab1.Start();

private void ThreadProc()
{
    Form frm = new Form3(currentAB);
    frm.ShowDialog();

}

【问题讨论】:

  • 也展示你的作品。如果没有看到你的程序,人们将无法帮助你。
  • 你能告诉我们你在后台线程中做了什么吗?我认为阻止它不重新发布而不是仅仅终止它会是一个更好的主意。
  • 一个线程不能去“没有响应”,进程去。你是说线程吗?
  • 你为什么不解决真正的问题?
  • 你不能不合作地杀死线程。不要使用 Thread.Abort 而不使用 Google 搜索它为什么不能可靠使用。

标签: c# multithreading kill-process


【解决方案1】:

另一种方法是在线程上使用计时器并每隔一定的秒数调用一次,检查您的线程是否已死。

Systems.Threading.Timer 类会帮助你

http://msdn.microsoft.com/en-us/library/vstudio/swx5easy.aspx

【讨论】:

    【解决方案2】:

    试试这个,这将仅检查线程是否处于活动状态,但并不意味着将检测线程是否在长时间运行的操作中被阻塞

     public partial class Form1 : Form
      {
         Thread ab1;   
         public Form1()
        {
             InitializeComponent();
            Thread ab1 = new Thread(new ThreadStart(ThreadProc));
            ab1.SetApartmentState(ApartmentState.STA);
            ab1.Start();
            bool isAlive = true ;
            TimerCallback tmrCallBack = new TimerCallback(CheckStatusThreadHealth);  
            System.Threading.Timer tmr = new System.Threading.Timer(tmrCallBack,isAlive,2000,2000);
         }
         public void CheckStatusThreadHealth(object isAlive)
         {
             isAlive = ab1.IsAlive ;  
         }
         private void ThreadProc()
         {
             Form frm = new Form1();
            frm.ShowDialog();
    
         }
    

    希望对你有所帮助

    【讨论】:

    • 你能解释一下吗?这是否意味着如果线程没有每 2 秒回答一次,它就会被终止?还是我必须使用 ab1.dispose();在 ChechStatusThreadHealth 中?
    • 这将仅检查线程是否处于活动状态,但并不意味着将检测线程是否在长时间运行的操作中被阻塞
    • 如果不是 isAlive 这意味着您的线程已正确终止或以异常结束。您可以轻松地启动一个新线程,因为最新的线程已被垃圾收集
    猜你喜欢
    • 2011-04-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-07-06
    • 2021-01-31
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多