コード例 #1
0
            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;
                    }
                });
            }
コード例 #2
0
 public void Stop()
 {
     currentOperation.Stop(null, null);
 }