상속: IDisposable
예제 #1
0
        public void Start(bool initialStart)
        {
            var ciEntryPointSettings = _settings.CiEntryPointSettings
                                       .Where(s => !string.IsNullOrEmpty(s.Url))
                                       .ToList();

            _watchers.Clear();
            foreach (var ciEntryPointSetting in ciEntryPointSettings)
            {
                WatcherBase watcher = ciEntryPointSetting.GetWatcher(_settings);
                _watchers.Add(watcher);
                watcher.StatusChecked           += BuildWatcherStatusChecked;
                watcher.StoppedWatching         += StoppedWatching;
                watcher.ServerUnavailable       += BuildWatcherServerUnavailable;
                watcher.InvalidCredentials      += InvalidCredentials;
                watcher.BuildDefinitionNotFound += BuildDefinitionNotFound;
                watcher.Settings            = _settings;
                watcher.CiEntryPointSetting = ciEntryPointSetting;
                // todo: It looks like we are overwriting preceding watcher threads with subsequent ones which will cause problems when we try to Stop() them
                _watcherThread = new Thread(watcher.StartWatching)
                {
                    IsBackground = true, Name = "CiWatcher"
                };
                _watcherThread.Start();
            }

            if (ciEntryPointSettings.Any())
            {
                if (initialStart)
                {
                    InvokeUpdateStatusBar("Attempting to connect to server");
                    SetStatusUnknown();
                }

                _timer.Start();
            }
            else
            {
                InvokeUpdateStatusBar("");
                InvokeRefreshStatus(Enumerable.Empty <BuildStatus>());
            }
        }
예제 #2
0
        public void Start(bool initialStart)
        {
            var ciEntryPointSettings = _settings.CiEntryPointSettings
                                       .Where(s => !string.IsNullOrEmpty(s.Url))
                                       .ToList();

            _watchers.Clear();
            foreach (var ciEntryPointSetting in ciEntryPointSettings)
            {
                WatcherBase watcher = ciEntryPointSetting.GetWatcher(_settings);
                _watchers.Add(watcher);
                watcher.StatusChecked           += BuildWatcherStatusChecked;
                watcher.ServerUnavailable       += BuildWatcherServerUnavailable;
                watcher.BuildDefinitionNotFound += BuildDefinitionNotFound;
                watcher.Settings            = _settings;
                watcher.CiEntryPointSetting = ciEntryPointSetting;
                _watcherThread = new Thread(watcher.StartWatching)
                {
                    IsBackground = true, Name = "CiWatcher"
                };
                _watcherThread.Start();
            }

            if (ciEntryPointSettings.Any())
            {
                if (initialStart)
                {
                    InvokeUpdateStatusBar("Attempting to connect to server");
                    SetStatusUnknown();
                }

                _timer.Start();
            }
            else
            {
                InvokeUpdateStatusBar("");
                InvokeRefreshStatus(Enumerable.Empty <BuildStatus>());
            }
        }