/// <summary> /// Event: Occurs when the timer is fired. /// </summary> /// <param name="o"></param> /// <param name="e"></param> private void pollTimer_TimerFired(object o, TimerEventArgs e) { this.IgnoreSubDirectories = false; pollTimer.StopTimer(); //Console.WriteLine("Number of rules: {0}", Rules.Length); foreach (Rule r in Rules) { //TODO: Work on exclusion list. TaskItemList list = r["HASHAFTER"]; foreach (TaskItem taskitem in list) { lock (Poll) { //Console.WriteLine("RuleName={0}; RuleValues:{1}", r.Name, r.wildcards.Value); if (!CompletedDirs.Contains(taskitem.Name.ToLower()) && !Poll.Contains(taskitem.Name.ToLower()) && !Exclude(taskitem.Name)) { ManualResetEvent mre = new ManualResetEvent(false); tmpEvents.Add(mre); Task task = new Task(taskitem, wildcards, SearchBrain.List.MaxPerFolder, mre); task.MaxDepth = taskitem.MaxDepth; Poll.Add(task); } } } } }
/// <summary> /// Setups the Poller with initial folders to start with. /// </summary> internal void CreateTasks() { int i = 0; if (!useLocation) { this.IgnoreSubDirectories = false; //Console.WriteLine("Number of rules: {0}", Rules.Length); foreach (Rule r in Rules) { //TODO: Work on exclusion list. TaskItemList list = r["HASHFIRST"]; //Console.WriteLine("RuleName={0}; RuleValues:{1}", r.Name, r.wildcards.Value); foreach (TaskItem taskitem in list) { if (taskitem != null) { Events.Add(new ManualResetEvent(false)); Task task = new Task(taskitem, wildcards, Hasher.MaxPerFolder, Events[i]); task.MaxDepth = taskitem.MaxDepth; //Console.WriteLine("MaxDepth = {0}", task.MaxDepth); Poll.Add(task); i++; } } pollTimer.BeginTimer(); } } else { foreach (string s in this.locations) { if (s.Trim().CompareTo("") != 0) { Events.Add(new ManualResetEvent(false)); Poll.Add(new Task(new TaskItem(s), wildcards, Hasher.MaxPerFolder, Events[i])); i++; } } } }
public TaskItem() { ID = Guid.NewGuid(); CreatedUTC = DateTime.UtcNow; RelatedTasks = new TaskItemList(); }