예제 #1
0
파일: Monitor.cs 프로젝트: allisterb/Fss
        public virtual ApiResult Start()
        {
            ThrowIfNotInitialized();
            Detectors.ForEach(d => QueueObserverThreads.Add(new Thread(() => ObserveDetectorQueue(d, Global.CancellationTokenSource.Token))));
            QueueObserverThreads.ForEach(t => t.Start());
            int enabled = 0;

            foreach (TDetector d in Detectors)
            {
                if (d.Enable() == ApiResult.Success)
                {
                    enabled++;
                }
                else
                {
                    Error("Could not enable detector.");
                }
            }
            if (enabled > 0)
            {
                Status = ApiStatus.Ok;
                return(ApiResult.Success);
            }
            else
            {
                Status = ApiStatus.Error;
                return(ApiResult.Failure);
            }
        }