// To access the listview in a thread safe manner
 public void AccessControlList(ListViewItem itm, MonitoredListView lst)
 {
     if (lst.InvokeRequired)
     {
         AccessControlListCallback d = new AccessControlListCallback(AccessControlList);
         lst.Invoke(d, new object[] { itm, lst });
     }
     else
     {
         lst.AddItem(itm);
     }
 }
 private void AccessControlList(ListViewItem itm,ListView lst)
 {
     if (lst.InvokeRequired)
     {
         AccessControlListCallback d = new AccessControlListCallback(AccessControlList);
         this.Invoke(d, new object[] { itm, lst });
     }
     else
     {
         lst.Items.Add(itm);
     }
 }