private void UserControl_Loaded(object sender, RoutedEventArgs e) { if (ControlsHelper.IsDesignMode(this)) { return; } // List which contains all issues. var scheduler = TaskScheduler.FromCurrentSynchronizationContext(); IssueList = new BindingListInvoked <IssueItem>(); UpdateIgnoreAllButton(); // List which is bound to the grid and displays issues, which needs user attention. Warnings = new BindingListInvoked <IssueItem>(); Warnings.SynchronizingObject = scheduler; MainDataGrid.ItemsSource = Warnings; UpdateIgnoreButton(); // Timer which checks for the issues. var ai = new JocysCom.ClassLibrary.Configuration.AssemblyInfo(); var title = ai.GetTitle(true, true, true, true, false) + " - Issues"; TasksTimer = new QueueTimer <object>(0, 0); TasksTimer.DoWork += queueTimer_DoWork; TasksTimer.Queue.ListChanged += Data_ListChanged; // Start monitoring tasks queue. QueueMonitorTimer = new System.Windows.Forms.Timer(); QueueMonitorTimer.Tick += QueueMonitorTimer_Tick; QueueMonitorTimer.Start(); }
private void Form1_Load(object sender, EventArgs e) { int t = Subpacket.SubpacketHeaderSize; unknownPackets = new BindingListInvoked <Object>(dataGridView1); subheads = new BindingListInvoked <SubpacketHeader>(dataGridView1); heads = new BindingListInvoked <PacketHeader>(dataGridView1); //Subpacket sp = new Packet261(); textBox2.ReadOnly = true; textBox2.Text = "Enter a username and then press start to begin logging data." + Environment.NewLine; textBox2.WordWrap = false; //subpacketList.DataSource = Subpacket.SubpacketSentDefinitions.Values.ToList<Type>(); //subpacketList.ValueMember = "Name"; rootNode = treeView1.Nodes.Add("Packets"); sentNode = rootNode.Nodes.Add("Sent"); receivedNode = rootNode.Nodes.Add("Received"); unknownNode = rootNode.Nodes.Add("Unknown"); headsNode = rootNode.Nodes.Add("Headers"); subheadsNode = rootNode.Nodes.Add("Subheaders"); /* * foreach(int key in Subpacket.SubpacketRecievedDefinitions.Keys) * { * receivedNode.Nodes.Add(key.ToString(), Subpacket.SubpacketRecievedDefinitions[key].Name); * } * foreach (int key in Subpacket.SubpacketSentDefinitions.Keys) * { * sentNode.Nodes.Add(key.ToString(), Subpacket.SubpacketSentDefinitions[key].Name).; * } */ }
public IssuesUserControl() { InitializeComponent(); if (IsDesignMode) { return; } NoIssuesPanel.Visible = false; LinePanel.Visible = false; ExceptionInfoButton.Visible = false; // List which contains all issues. IssueList = new BindingListInvoked <IssueItem>(); IssueList.SynchronizingObject = this; IssueList.ListChanged += IssueList_ListChanged; UpdateIgnoreAllButton(); // List which is bound to the grid and displays issues, which needs user attention. Warnings = new BindingListInvoked <IssueItem>(); Warnings.SynchronizingObject = this; // Configure data grid. ControlsHelper.ApplyBorderStyle(WarningsDataGridView); WarningsDataGridView.AutoGenerateColumns = false; WarningsDataGridView.DataSource = Warnings; UpdateIgnoreButton(); // Timer which checks for the issues. var ai = new JocysCom.ClassLibrary.Configuration.AssemblyInfo(); var title = ai.GetTitle(true, true, true, true, false) + " - Issues"; Text = title; TasksTimer = new JocysCom.ClassLibrary.Threading.QueueTimer <object>(0, 5000, this); TasksTimer.DoWork += queueTimer_DoWork; TasksTimer.Queue.ListChanged += Data_ListChanged; // Start monitoring tasks queue. QueueMonitorTimer.Start(); }
public QueueTimer(int delayInterval = 500, int sleepInterval = 5000, TaskScheduler listSynchronizingObject = null) : base(delayInterval, sleepInterval) { // Create main properties. Queue = new BindingListInvoked <T>(); Queue.SynchronizingObject = listSynchronizingObject; SynchronizingObject = listSynchronizingObject; }
public IssuesUserControl() { InitializeComponent(); if (IsDesignMode) { return; } // List which contains all issues. IssueList = new BindingListInvoked <IssueItem>(); IssueList.SynchronizingObject = this; IssueList.ListChanged += IssueList_ListChanged; // List which is bound to the grid and displays issues, which needs user attention. Warnings = new BindingListInvoked <IssueItem>(); Warnings.SynchronizingObject = this; // Configure data grid. ControlsHelper.ApplyBorderStyle(IssuesDataGridView); IssuesDataGridView.AutoGenerateColumns = false; IssuesDataGridView.DataSource = Warnings; // Timer which checks for the issues. CheckTimer = new System.Timers.Timer(); CheckTimer.Interval = 1000; CheckTimer.AutoReset = false; CheckTimer.SynchronizingObject = this; CheckTimer.Elapsed += CheckTimer_Elapsed; var ai = new JocysCom.ClassLibrary.Configuration.AssemblyInfo(); var title = ai.GetTitle(true, true, true, true, false) + " - Issues"; Text = title; }
private void Form1_Load(object sender, EventArgs e) { names = new BindingListInvoked <Name>(dataGridView1); dataGridView1.DataSource = names; new Thread(() => names.Add(new Name() { FirstName = "Larry", LastName = "Lan" })).Start(); new Thread(() => names.Add(new Name() { FirstName = "Jessie", LastName = "Feng" })).Start(); }
public IssuesUserControl() { InitializeComponent(); if (IsDesignMode) { return; } // Set tool strip to the same font. Controls.OfType <ToolStrip>().ToList().ForEach(x => x.Font = this.Font); NoIssuesPanel.Visible = false; LinePanel.Visible = false; ExceptionInfoButton.Visible = false; // List which contains all issues. var scheduler = TaskScheduler.FromCurrentSynchronizationContext(); IssueList = new BindingListInvoked <IssueItem>(); IssueList.AsynchronousInvoke = true; IssueList.SynchronizingObject = scheduler; IssueList.ListChanged += IssueList_ListChanged; UpdateIgnoreAllButton(); // List which is bound to the grid and displays issues, which needs user attention. Warnings = new BindingListInvoked <IssueItem>(); Warnings.SynchronizingObject = scheduler; // Configure data grid. ControlsHelper.ApplyBorderStyle(WarningsDataGridView); WarningsDataGridView.AutoGenerateColumns = false; WarningsDataGridView.DataSource = Warnings; UpdateIgnoreButton(); // Timer which checks for the issues. var ai = new JocysCom.ClassLibrary.Configuration.AssemblyInfo(); var title = ai.GetTitle(true, true, true, true, false) + " - Issues"; Text = title; TasksTimer = new QueueTimer <object>(0, 0); TasksTimer.DoWork += queueTimer_DoWork; TasksTimer.Queue.ListChanged += Data_ListChanged; // Start monitoring tasks queue. QueueMonitorTimer.Start(); }
private void UserControl_Unloaded(object sender, RoutedEventArgs e) { IsDisposing = true; // Clear list. var items = IssueList?.ToArray(); IssueList?.Clear(); if (items != null) { // Remove events. foreach (var item in items) { item.Checking -= Item_Checking; item.Checked -= Item_Checked; item.Fixing -= Item_Fixing; item.Fixed -= Item_Fixed; } } WarningsView?.DetachFromSourceCollection(); //MainDataGrid.ItemsSource = null; if (Warnings != null) { Warnings.SynchronizingObject = null; Warnings.Clear(); Warnings = null; } if (TasksTimer != null) { TasksTimer.DoWork -= QueueTimer_DoWork; TasksTimer.Queue.ListChanged -= Data_ListChanged; TasksTimer.Dispose(); } if (QueueMonitorTimer != null) { QueueMonitorTimer.Tick -= QueueMonitorTimer_Tick; QueueMonitorTimer.Dispose(); } }