void UpdateListViewItem(ListViewItem item, ODAsyncTask task, bool forceUpdate = false) { if (!forceUpdate && !this.IsHandleCreated) { return; } var updateAction = new Action <ListViewItem, ODAsyncTask>((lvitem, lvtask) => { lvitem.SubItems.Clear(); lvitem.Text = lvtask.Status.Operation.ToString(); lvitem.SubItems.Add(lvtask.Status.PercentComplete.ToString()); lvitem.SubItems.Add(lvtask.Status.Status.ToString()); lvitem.SubItems.Add(lvtask.RequestUri.ToString()); lvitem.Tag = lvtask; }); if (this.InvokeRequired) { Invoke(new MethodInvoker(() => updateAction(item, task))); } else { updateAction(item, task); } }
ListViewItem ListViewItemForTask(ODAsyncTask task) { var item = new ListViewItem(); UpdateListViewItem(item, task, true); return(item); }