public void AddTaskLogItem(String msg) { TaskLogItem item = new TaskLogItem(DateTime.Now.ToString(), msg); queue.Enqueue(item); }
public void Update(TaskLogItem item) { if (dgv.InvokeRequired) { // invoke (0) if we are on different threads object[] args = new object[] { item }; UpdateViewDelegate updateViewDelegate = new UpdateViewDelegate(Update); dgv.Invoke(updateViewDelegate, args); } else { // Add a new row of data (0) DataGridViewRow row; dgv.Rows.Add(); row = dgv.Rows[dgv.RowCount - 1]; row.Cells[0].Value = item.LogDate; row.Cells[1].Value = item.LogMsg; // make last row be scrolled into view dgv.FirstDisplayedScrollingRowIndex = dgv.Rows.Count - 1; } }