Пример #1
0
 /// <summary>
 /// 清空当前的所有内存日志
 /// </summary>
 public static void ClearMemLog()
 {
     lock (_lockMem)
     {
         _logQueue.Clear();
     }
 }
Пример #2
0
        private void DoClose()
        {
            try
            {
                IsInited = false;
                DxDebug.LogConsole("DNClient.DoClose():开始释放资源 ");
                _disposed = true;

                // 清理托管资源
                _msgQueue.Clear();
                _msgPool.Clear();

                _msgQueue = null;
                _msgPool  = null;

                // 清理非托管资源
                _msgSemaphore.Close();
                _msgSemaphore = null;
                Interlocked.Exchange(ref _curSemCount, 0);

                if (_socketClient != null)
                {
                    _socketClient.Dispose();
                    _socketClient = null;
                }

                IsConnecting = false;
            }
            catch (Exception e)
            {
                DxDebug.LogWarning("DNClient.DoClose():异常: " + e.Message);
            }
        }
Пример #3
0
 /// <summary>
 /// 统计数据清空
 /// </summary>
 public void Clear()
 {
     CountReceive = 0;
     CountSend    = 0;
     CountReceive10s.Clear();
     CountSend10s.Clear();
 }
Пример #4
0
        private void Dispose(bool disposing)
        {
            if (disposed)
            {
                return;
            }
            try
            {
                if (disposing)
                {
                    // 清理托管资源
                    _msgQueue.Clear();
                    Status.Clear();//清空状态统计
                }
                // 清理非托管资源
                EventTokenError    = null;
                EventTokenReceData = null;

                _msgSemaphore.Close();//关信号量队列
                if (_workThread != null)
                {
                    for (int i = 0; i < _workThread.Length; i++)
                    {
                        try
                        {
                            if (_workThread[i].IsAlive) //关线程
                            {
                                _workThread[i].Abort();
                            }
                        }
                        catch (Exception e)
                        {
                            DxDebug.LogWarning("DNServer.Dispose():异常 _workThread[" + i + "].Abort();" + e.Message);
                        }
                    }
                }

                if (_socketListener != null)
                {
                    _socketListener.Dispose();
                    _socketListener = null;
                }
            }
            catch (Exception e)
            {
                DxDebug.LogWarning("DNServer.Dispose():异常 " + e.Message);
            }
            //让类型知道自己已经被释放
            disposed = true;
        }
Пример #5
0
        private void Dispose(bool disposing)
        {
            if (_disposed)
            {
                return;
            }
            try
            {
                DxDebug.LogConsole("WorkThread.DoWork():工作线程关闭!");
                _isRun = false;

                //最先去把线程关了
                for (int i = 0; i < _threadCount; i++)
                {
                    //把线程关了
                    if (_workThread[i] != null && _workThread[i].IsAlive)
                    {
                        try
                        {
                            _workThread[i].Abort();
                        }
                        catch (Exception e)
                        {
                            DxDebug.LogWarning("WorkThread.Dispose():异常 _workThread[" + i + "].Abort();" + e.Message);
                        }
                    }
                }

                if (disposing)
                {
                    // 清理托管资源
                    if (_msgQueue != null)
                    {
                        _msgQueue.Clear();
                    }
                }
                // 清理非托管资源
                if (_msgSemaphore != null)
                {
                    _msgSemaphore.Close();
                }
            }
            catch (Exception e)
            {
                DxDebug.LogWarning("WorkThread.Dispose():释放异常" + e.Message);
            }
            //让类型知道自己已经被释放
            _disposed = true;
        }