Example #1
0
        //偵測Thread存在與否
        private void Check_Run()
        {
            bool CheckStart = true;

            while (CheckStart)
            {
                if (!MemInterface.ReadThread.IsAlive)
                {
                    eventLog1.WriteEntry("ReadThread屬於停滯狀態");
                }
                if (!MemInterface.newthread.IsAlive)
                {
                    eventLog1.WriteEntry("newthread屬於停滯狀態");
                }
                if (!MemInterface.ReadThread_Fanuc.IsAlive)
                {
                    eventLog1.WriteEntry("ReadThread_Fanuc屬於停滯狀態");
                }
                if (!MemInterface.newthread_Fanuc.IsAlive)
                {
                    eventLog1.WriteEntry("newthread_Fanuc屬於停滯狀態");
                }
                if (MemInterface.ReadThread.IsAlive & MemInterface.newthread.IsAlive & MemInterface.ReadThread.IsAlive & MemInterface.newthread_Fanuc.IsAlive)
                {
                    eventLog1.WriteEntry("Thread皆正常運作");
                }

                if (!info.IsConnect())
                {
                    eventLog1.WriteEntry("DELTA發生斷線,將進行重新連接的動作");
                    //Reconnect
                    int         result = info.SetConnectInfo(DELTA_localIP1, DELTA_remoteIP1, Convert.ToInt32(DELTA_timeout1));
                    ErrorString ES     = new ErrorString();
                    eventLog1.WriteEntry(ES.errorstring(result));
                }
                Thread.Sleep(300000); //每5分鐘進行執行緒的狀態確認
            }
        }