private void Dispose(bool disposing) { if (disposing) { var worker = _worker; if (worker != null) { Log("Sending abort... {0}", DateTime.Now); lock (_workerQueue) { _workerQueue.Clear(); _workerQueue.Enqueue(WorkerMessage.Abort()); _workerQueueChanged.Set(); } Log("Waiting for abort... {0}", DateTime.Now); bool stopped = worker.Join(10000); Log("Done Waiting for abort... {0} {1}", DateTime.Now, stopped); Debug.Assert(stopped, "Failed to terminate TaskProvider worker thread"); } lock (_itemsLock) { _items.Clear(); } if (_taskList != null) { _taskList.UnregisterTaskProvider(_cookie); } _workerQueueChanged.Dispose(); } }
protected virtual void Dispose(bool disposing) { if (disposing) { var worker = _worker; if (worker != null) { lock (_workerQueue) { _workerQueue.Clear(); _workerQueue.Enqueue(WorkerMessage.Abort()); _workerQueueChanged.Set(); } bool stopped = worker.Join(10000); Debug.Assert(stopped, "Failed to terminate TaskProvider worker thread"); } lock (_itemsLock) { _items.Clear(); } if (_taskList != null) { _taskList.UnregisterTaskProvider(_cookie); } _workerQueueChanged.Dispose(); } }
private void RemoveProvider_Click(object sender, RoutedEventArgs e) { if ((_service != null) && (_providerCookie != VSConstants.VSCOOKIE_NIL)) { _provider.ClearItems(); _service.RefreshTasks(_providerCookie); int hr = _service.UnregisterTaskProvider(_providerCookie); if (ErrorHandler.Succeeded(hr)) { _providerCookie = VSConstants.VSCOOKIE_NIL; _provider = null; _service = null; this.RemoveProvider.Foreground = Brushes.Green; this.CreateProvider.IsEnabled = true; this.Refresh.IsEnabled = false; this.Add1000.IsEnabled = false; this.RemoveHalf.IsEnabled = false; this.RemoveProvider.IsEnabled = false; this.RemoveProvider.IsEnabled = false; return; } } this.RemoveProvider.Foreground = Brushes.Red; }
public void Dispose() { lock (_workerQueue) { try { if (_hasWorker) { _hasWorker = false; _workerQueue.CompleteAdding(); } else { _workerQueue.Dispose(); } } catch (ObjectDisposedException) { // _workerQueue is already disposed } } lock (_itemsLock) { _items.Clear(); } RefreshAsync().DoNotWait(); if (_errorList != null) { _errorList.UnregisterTaskProvider(_cookie); } }
protected virtual void Dispose(bool disposing) { if (disposing) { lock (_workerQueue) { if (_hasWorker) { _hasWorker = false; _workerQueue.CompleteAdding(); } else { _workerQueue.Dispose(); } } lock (_itemsLock) { _items.Clear(); } RefreshAsync().DoNotWait(); if (_taskList != null) { _taskList.UnregisterTaskProvider(_cookie); } } }
public int OnTaskListFinalRelease(IVsTaskList pTaskList) { if ((_cookie != 0) && (null != pTaskList)) { int hr = pTaskList.UnregisterTaskProvider(_cookie); Debug.Assert(hr == VSConstants.S_OK, "UnregisterTaskProvider did not return S_OK."); } return(VSConstants.S_OK); }
int IVsTaskProvider.OnTaskListFinalRelease(IVsTaskList pTaskList) { if (pTaskList != null && cookie != 0) { pTaskList.UnregisterTaskProvider(cookie); cookie = 0; return(VSConstants.S_OK); } return(VSConstants.S_FALSE); }
private void RegisterProvider() { if (taskList != null) { if (dwCookie != 0) { taskList.UnregisterTaskProvider(dwCookie); dwCookie = 0; } taskList.RegisterTaskProvider(this, out dwCookie); } }
public int OnTaskListFinalRelease(IVsTaskList pTaskList) { if (pTaskList != null) { if (taskListCookie != 0) { pTaskList.UnregisterTaskProvider(taskListCookie); taskListCookie = 0; taskList = null; } } return(0); }
public virtual void Dispose() { try { // Disposing the main wait object will terminate the thread // as best as we can _workerQueueChanged.Dispose(); } catch (ObjectDisposedException) { } lock (_itemsLock) { _items.Clear(); } if (_taskList != null) { _taskList.UnregisterTaskProvider(_cookie); } }
public void Dispose() { lock (_workerQueue) { if (_hasWorker) { _hasWorker = false; _workerQueue.CompleteAdding(); } else { _workerQueue.Dispose(); } } lock (_itemsLock) { _items.Clear(); } RefreshAsync().DoNotWait(); if (_errorList != null) { _errorList.UnregisterTaskProvider(_cookie); } }
public int OnTaskListFinalRelease(IVsTaskList pTaskList) { if (pTaskList != null) { if (taskListCookie != 0) { pTaskList.UnregisterTaskProvider(taskListCookie); taskListCookie = 0; taskList = null; } } return 0; }
public int OnTaskListFinalRelease(IVsTaskList pTaskList) { if ((_cookie != 0) && (null != pTaskList)) { int hr = pTaskList.UnregisterTaskProvider(_cookie); Debug.Assert(hr == VSConstants.S_OK, "UnregisterTaskProvider did not return S_OK."); } return VSConstants.S_OK; }