public RefreshableJob(Job hiveJob) { this.progress = new Progress(); this.refreshAutomatically = true; this.Job = hiveJob; this.log = new ThreadSafeLog(); this.jobDownloader = new ConcurrentTaskDownloader<ItemTask>(Settings.Default.MaxParallelDownloads, Settings.Default.MaxParallelDownloads); this.jobDownloader.ExceptionOccured += new EventHandler<EventArgs<Exception>>(jobDownloader_ExceptionOccured); this.HiveTasks = new ItemCollection<HiveTask>(); }
private static void RegisterLoggerTypes(TinyIoCContainer container) { container.Register <IClientMessenger, ClientMessenger>().AsSingleton(); container.Register <IMemoryLog, MemoryLog>().AsSingleton(); TinyIoCContainer logContainer = CreateHelperLogBuilderContainer(container); var threadSafeLog = new ThreadSafeLog(logContainer.Resolve <ILog>()); container.Register <ILog, ThreadSafeLog>(threadSafeLog); container.Register <ILogger>( (c, p) => new Logger(new Context("Chooie.Startup"), c.Resolve <ILog>())); }
protected RefreshableJob(RefreshableJob original, Cloner cloner) { cloner.RegisterClonedObject(original, this); this.Job = cloner.Clone(original.Job); this.IsControllable = original.IsControllable; this.log = cloner.Clone(original.log); this.RefreshAutomatically = false; // do not start results polling automatically this.jobDownloader = new ConcurrentTaskDownloader<ItemTask>(Settings.Default.MaxParallelDownloads, Settings.Default.MaxParallelDownloads); this.jobDownloader.ExceptionOccured += new EventHandler<EventArgs<Exception>>(jobDownloader_ExceptionOccured); this.HiveTasks = cloner.Clone(original.HiveTasks); this.ExecutionTime = original.ExecutionTime; this.ExecutionState = original.ExecutionState; }
public void ThreadSafeLogThreadSafetyTest() { int count = 10000; ThreadSafeLog log = new ThreadSafeLog(); Parallel.For(0, count, (i) => { log.LogMessage("Message " + i); // write something log.Messages.Count(); // iterate over all messages }); Assert.AreEqual(count, log.Messages.Count()); }
public Core() { var log = new ThreadSafeLog(SlaveCore.Properties.Settings.Default.MaxLogCount); this.pluginManager = new PluginManager(WcfService.Instance, log); this.taskManager = new TaskManager(pluginManager, log); log.MessageAdded += new EventHandler <EventArgs <string> >(log_MessageAdded); RegisterTaskManagerEvents(); this.configManager = new ConfigManager(taskManager); ConfigManager.Instance = this.configManager; }