Exemplo n.º 1
0
 public ThreadParameters()
 {
     ModuleInitFailedEvent = new AutoResetEvent(false);
     ModuleReadyEvent      = new AutoResetEvent(false);
     ModuleStartWorkEvent  = DiReCTMainProgram.ModuleStartWorkEvent;
     ModuleAbortEvent      = DiReCTMainProgram.ModuleAbortEvent;
     moduleThreadPool      = new DiReCTThreadPool(THREADPOOL_SIZE);
 }
Exemplo n.º 2
0
        public static void DMInit(object objectParameters)
        {
            moduleControlDataBlock
                = (ModuleControlDataBlock)objectParameters;
            threadParameters = moduleControlDataBlock.ThreadParameters;

            try
            {
                // Initialize Ready/Abort Event and threadpool
                ModuleReadyEvent = threadParameters.ModuleReadyEvent;
                ModuleAbortEvent = threadParameters.ModuleAbortEvent;
                moduleThreadPool = threadParameters.moduleThreadPool;
                ModuleReadyEvent.Set();

                Debug.WriteLine("DMInit complete Phase 1 Initialization");

                // Wait for core StartWork Signal
                ModuleStartWorkEvent = threadParameters.ModuleStartWorkEvent;
                ModuleStartWorkEvent.WaitOne();

                Debug.WriteLine("DMInit complete Phase 2 Initialization");

                //
                // Main Thread of DM module (begin)
                //
                // Initialize dictionary manager
                recordDictionaryManager = new RecordDictionaryManager();

                // Whenever the SaveRecord Event is called, DMSavingRecordWrapper
                // will be called
                RecordSavingTriggerd += new SaveRecordEventHanlder(
                    DMSavingRecordWrapper);


                Debug.WriteLine("DM module is working...");

                // Check ModuleAbortEvent periodically
                while (!ModuleAbortEvent
                       .WaitOne((int)TimeInterval.VeryVeryShortTime))
                {
                    // Does nothing and wait for abort event
                }

                Debug.WriteLine("DM module is aborting.");
                CleanupExit();
            }
            catch (Exception ex)
            {
                Debug.WriteLine(ex.Message);
                Debug.WriteLine("DM module thread failed.");
                threadParameters.ModuleInitFailedEvent.Set();
                Debug.WriteLine("DM ModuleInitFailedEvent Set");
                CleanupExit();
            }
        }
Exemplo n.º 3
0
        public static void RTQCInit(object objectParameters)
        {
            moduleControlDataBlock
                = (ModuleControlDataBlock)objectParameters;
            threadParameters = moduleControlDataBlock.ThreadParameters;

            try
            {
                // Initialize ready/abort event and threadpool
                ModuleReadyEvent = threadParameters.ModuleReadyEvent;
                ModuleAbortEvent = threadParameters.ModuleAbortEvent;
                moduleThreadPool = threadParameters.moduleThreadPool;
                ModuleReadyEvent.Set();

                Debug.WriteLine("RTQCInit complete Phase 1 Initialization");

                // Wait for Core StartWorkEvent Signal
                ModuleStartWorkEvent = threadParameters.ModuleStartWorkEvent;
                ModuleStartWorkEvent.WaitOne();

                Debug.WriteLine("RTQCInit complete Phase 2 Initialization");

                //
                // Main Thread of RTQC module (begin)
                //
                Debug.WriteLine("RTQC module is working...");

                // Whenever ValidateEvent is raised, RTQCValidateWrapper will
                // be called.
                ValidateEventTriggerd += new ValidateEventHanlder(
                    RTQCValidateWrapper);

                // Check ModuleAbortEvent periodically
                while (!ModuleAbortEvent
                       .WaitOne((int)TimeInterval.VeryVeryShortTime))
                {
                }

                Debug.WriteLine("RTQC module is aborting.");
                CleanupExit();
            }
            catch (Exception ex)
            {
                Debug.WriteLine(ex.Message);
                Debug.WriteLine("RTQC module thread failed.");
                threadParameters.ModuleInitFailedEvent.Set();
                Debug.WriteLine("RTQC ModuleInitFailedEvent Set");
                CleanupExit();
            }
        }
Exemplo n.º 4
0
        public static void DSInit(object objectParameters)
        {
            moduleControlDataBlock
                = (ModuleControlDataBlock)objectParameters;
            threadParameters = moduleControlDataBlock.ThreadParameters;
            //moduleWorkQueue = moduleControlDataBlock.ModuleWorkQueue;

            try
            {
                //Initialize ready/abort event
                ModuleReadyEvent = threadParameters.ModuleReadyEvent;
                ModuleAbortEvent = threadParameters.ModuleAbortEvent;
                moduleThreadPool = threadParameters.moduleThreadPool;
                ModuleReadyEvent.Set();

                Debug.WriteLine("DSInit complete Phase 1 Initialization");

                //Wait for startwork signal
                ModuleStartWorkEvent = threadParameters.ModuleStartWorkEvent;
                ModuleStartWorkEvent.WaitOne();

                Debug.WriteLine("DSInit complete Phase 2 Initialization");

                //
                // Main Thread of DS module (begin)
                //
                Debug.WriteLine("DS module is working...");
                Debug.WriteLine("DS Core: " + Thread.CurrentThread.ManagedThreadId);
                // Check ModuleAbortEvent periodically
                while (!ModuleAbortEvent
                       .WaitOne((int)TimeInterval.VeryVeryShortTime))
                {
                    //Does nothing
                }

                Debug.WriteLine("DS module is aborting.");
                CleanupExit();
            }
            catch (Exception ex)
            {
                Debug.WriteLine(ex.Message);
                Debug.WriteLine("DS module thread failed.");
                threadParameters.ModuleInitFailedEvent.Set();
                Debug.WriteLine("DS ModuleInitFailedEvent Set");
                CleanupExit();
            }
        }
Exemplo n.º 5
0
        public static void MANInit(object objectParameters)
        {
            moduleControlDataBlock
                = (ModuleControlDataBlock)objectParameters;
            threadParameters = moduleControlDataBlock.ThreadParameters;

            try
            {
                // Initialize ready/abort event
                ModuleReadyEvent = threadParameters.ModuleReadyEvent;
                ModuleAbortEvent = threadParameters.ModuleAbortEvent;
                moduleThreadPool = threadParameters.moduleThreadPool;
                builder          = new Notification.Builder();
                ModuleReadyEvent.Set();

                Debug.WriteLine("MANInit complete Phase 1 Initialization");

                // Wait for starwork signal
                ModuleStartWorkEvent = threadParameters.ModuleStartWorkEvent;
                ModuleStartWorkEvent.WaitOne();

                Debug.WriteLine("MANInit complete Phase 2 Initialization");

                //
                // Main Thread of MAN module (begin)
                //

                Debug.WriteLine("MAN module is working...");

                // Check ModuleAbortEvent periodically
                while (!ModuleAbortEvent
                       .WaitOne((int)TimeInterval.VeryVeryShortTime))
                {
                }

                Debug.WriteLine("MAN module is aborting.");
                CleanupExit();
            }
            catch (Exception ex)
            {
                Debug.WriteLine(ex.Message);
                Debug.WriteLine("MAN module thread failed.");
                threadParameters.ModuleInitFailedEvent.Set();
                Debug.WriteLine("MAN ModuleInitFailedEvent Set");
                CleanupExit();
            }
        }