Beispiel #1
0
        public MediaFile DiscoverFile(string file, bool takeScreenshot = true)
        {
            IDiscoverer discoverer = GetDiscoverer();
            MediaFile   mfile      = discoverer.DiscoverFile(file, takeScreenshot);

            discoverer.Dispose();
            return(mfile);
        }
        public void Dispose()
        {
            //正常退出时,如果还有正在进行的会话,则将这些会话序列化起来。
            foreach (Conversation conv in Conversations.Values)
            {
                //TODO 新特性 每个会话还要设置超时。而且信息是明文的。这需要认真考虑。
            }

            //给每个已经连接的设备发Offline消息,广播下线消息不一定正确。因为不能保证所有人都能收到广播,建立连接的方式不一定只是局域网。
            foreach (var device in Devices)
            {
                if (device.State == DeviceState.Connected)
                {
                    device.Disconnect();
                }
                device.NotifyImOffline();
            }
            //等待上面的数据包发送完毕。要不要等待全部回复,或者超时两个条件?
            Thread.Sleep(500);
            Stop();
            Discoverer.Dispose();
            ChannelManager.Dispose();
            //appModelMutex.ReleaseMutex();
        }