private void Dispose(bool disposing) { if (CancelTokenSource != null) { CancelTokenSource.Cancel(); if (PrintQueueProcessorThread != null) { PrintQueueProcessorThread.Join(); } CancelTokenSource.Dispose(); } PrintQueueProcessorThread = null; CancelTokenSource = null; if (PrintServerDispatcherThread != null) { if (PrintServerDispatcher != null) { PrintServerDispatcher.InvokeShutdown(); } PrintServerDispatcherThread.Join(); } PrintServerDispatcher = null; PrintServerDispatcherThread = null; if (disposing) { Disposed = true; GC.SuppressFinalize(this); } }
public IEnumerable <CloudPrinter> GetPrintQueues() { return((IEnumerable <CloudPrinter>)PrintServerDispatcher.Invoke((Func <IEnumerable <CloudPrinter> >)DoGetPrintQueues)); }