none
项目出现异常,Thread就"死掉" RRS feed

  • 问题

  • 引用System.Threading命名空间
    创建一个Thread,然后开启它
    请问大家:
    为什么项目中其他程序异常了,这个Thread就自动终止了,并且还弹出 WebDev。Server。exe正在终止???
    I Belong To Jesus...
    2009年10月29日 9:08

答案

全部回复

  • winform和web机制不同 web是共享一个iis线程的  只要程序出异常 会话死掉了 Thread跟着死掉
    不知道你的代码怎么写的

    2009年10月29日 13:05
  •     public static class RecevieMailServer
        {
            private static Thread myThread;
            private static int _SleepTime = 1;
            private static Mail mail = new Mail();
            private static DateTime StartTime;
    
            /// <summary>
            /// 开始接收邮件
            /// </summary>
            public static void Start()
            {
                myThread = new Thread(new ThreadStart(RecevieMail));
                StartTime = DateTime.Now;
                myThread.Start();
            }
    
            /// <summary>
            /// 停止接收邮件
            /// </summary>
            public static void Stop()
            {
                if (myThread != null && myThread.IsAlive)
                    myThread.Abort();
            }
    
            /// <summary>
            /// 获取、设置间隔时间
            /// </summary>
            public static int SleepTime
            {
                get
                {
                    return _SleepTime;
                }
                set
                {
                    _SleepTime = value;
                }
            }
    
            /// <summary>
            /// 获取线程是否处理激活状态
            /// </summary>
            public static bool IsAlive
            {
                get
                {
                    return myThread == null ? false : myThread.IsAlive;
                }
            }
    
            /// <summary>
            /// 获取运行时间
            /// </summary>
            public static TimeSpan RunningTime
            {
                get
                {
                    if (StartTime == DateTime.MinValue)
                        return new TimeSpan(0, 0, 0, 0);
                    else
                        return DateTime.Now.Subtract(StartTime);
                }
            }
    
            /// <summary>
            /// 接收线程
            /// </summary>
            private static void RecevieMail()
            {
                while (true)
                {
                    
                    //省略部分代码
    
                    Thread.Sleep(1000 * 60 * _SleepTime);
                }
            }

    I Belong To Jesus...
    2009年10月30日 2:02