コード例 #1
0
 private void OnCancelButtonClick(object sender, EventArgs e)
 {
     while (TransfersList.SelectedItems.Count > 0)
     {
         TransferMonitor monitor = (TransferMonitor)TransfersList.SelectedItems[0];
         if (monitor != null)
         {
             monitor.RequestCancel();
         }
         _list.Remove(monitor);
     }
 }
コード例 #2
0
        /// <summary>
        /// This clears all completed transfers from the transfer queue
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void ClearCompletedItems(object sender, EventArgs e)
        {
            var i = 0;

            // Perhaps a goofy looking iteration, but a foreach will not work because items are being removed from _list
            while (i < _list.Count)
            {
                if (_list.ElementAt(i).State == TransferRequestState.Complete)
                {
                    TransferMonitor monitor = _list.ElementAt(i);
                    monitor.RequestCancel(); //ensures that the request is removed from the queue, even if complete
                    UnsubscribeMonitor(monitor);
                    _list.RemoveAt(i);
                }
                else
                {
                    i++;
                }
            }
        }