public void Stop() { currentOperation.Stop( () => { // Wait for rooms to stop doing work List <WaitHandle> waitHandles = new List <WaitHandle>(); foreach (SimulatedChatRoom room in chatRoomSessions) { waitHandles.Add(room.WaitForStopped); room.Stop(); } if (waitHandles.Count > 0) { WaitHandle.WaitAll(waitHandles.ToArray()); } }, () => { // Teardown chatRoomSessions.Clear(); chatRooms.Clear(); if (persistentChatEndpoint != null) { SampleCommon.DisconnectPersistentChatServer(persistentChatEndpoint); persistentChatEndpoint = null; } if (userEndpoint != null) { SampleCommon.DisconnectOfficeCommunicationServer(userEndpoint); userEndpoint = null; } }); }
public void Stop() { currentOperation.Stop(null, null); }