public void Shutdown() { StopScanning(); if (_service != null) { _service.Dispose(); _service = null; } if (_peripheral != null) { _peripheral.Dispose(); _peripheral = null; } if (_centralManager != null) { _centralManager.Dispose(); _centralManager = null; } if (_dispatchQueue != null) { _dispatchQueue.Dispose(); _dispatchQueue = null; } }
public async Task ShouldCreateADispatchQueueAndEnqueueMessagesThenDispose(int batchSize, int queueMaxSize, int messageCount, int messageConsumptionWait) { var messages = new List <IEvent>(); var dispatchQueueConfiguration = new DispatchQueueConfiguration( async(m) => { messages.Add(m); await Task.Delay(messageConsumptionWait + 5); }, batchSize, queueMaxSize ); var dispatchQueue = new DispatchQueue("void", dispatchQueueConfiguration, new DummyLoggerFactory()); Assert.True(dispatchQueue.CanEnqueue()); await Task.Delay(100); for (var i = 0; i < messageCount; i++) { dispatchQueue.Enqueue(new TestMessage(i)); } await Task.Delay(messageConsumptionWait *batchSize); Assert.AreEqual(batchSize, messages.Count); dispatchQueue.Dispose(); Assert.IsFalse(dispatchQueue.CanEnqueue()); Assert.AreEqual(messageCount, messages.Count); }
void UserKnocked() { _state.didKnock = true; if (_state.CountDown > 0 && _state.CountDown < 5 && _state.PublishToTwitter == false) { _state.PublishToTwitter = true; session.StopRunning(); session.Dispose(); session = null; outputRecorder.Dispose(); outputRecorder = null; queue.Dispose(); queue = null; //Stop Both Timers AudioLoop.Invalidate(); timer.Invalidate(); //Stop Recording StopRecording(); //Start up Resording NSTimer.CreateScheduledTimer(TimeSpan.FromSeconds(10), AudioReset); NSTimer.CreateScheduledTimer(TimeSpan.FromSeconds(1), PostToTwitter); _state.PublishToTwitter = true; _state.TopLabel.Text = ""; _state.BottomLabel.Text = "Posted to Twitter!"; imgYouRock.Hidden = false; } }
/// <summary> /// Stops the and tears down the capture session. /// </summary> public void StopAndTearDownCaptureSession() { if (captureSession != null) { if (captureSession.Running) { captureSession.StopRunning(); } NSNotificationCenter.DefaultCenter.RemoveObserver(this, AVCaptureSession.DidStopRunningNotification, captureSession); captureSession.Dispose(); captureSession = null; } if (previewBufferQueue != null) { previewBufferQueue.Dispose(); previewBufferQueue = null; } if (movieWritingQueue != null) { movieWritingQueue.Dispose(); movieWritingQueue = null; } }
public void TearDown() { if (listener != null) { listener.Dispose(); } if (queue != null) { queue.Dispose(); } listener = null; queue = null; }
public void ShouldTryToEnqueueAndFail() { var dispatchQueueConfiguration = new DispatchQueueConfiguration( async(m) => { await Task.Delay(10); }, 10, 10 ); var dispatchQueue = new DispatchQueue("void", dispatchQueueConfiguration, new DummyLoggerFactory()); dispatchQueue.Dispose(); Assert.IsFalse(dispatchQueue.CanEnqueue()); Assert.Throws <InvalidOperationException>(() => dispatchQueue.Enqueue(new TestMessage(1))); }