예제 #1
0
 public void Dispose()
 {
     watchdogEvent.Dispose();
     process.Kill();
     process.Dispose();
     process = null;
     pipe.Dispose();
     mmva.Dispose();
     mmf.Dispose();
     rbuf.Dispose();
     wbuf.Dispose();
     foreach (var smb in DeallocatedMemoryBlocks.Values)
     {
         smb.Dispose();
     }
     DeallocatedMemoryBlocks.Clear();
 }
예제 #2
0
        private void InitializeServicesAfterProcessStarts()
        {
            try
            {
                _ipcHandle.WaitOne();
                _ipcHandle.Dispose();
                _ipcHandle = null;

                CreateProtocolServiceClient();
                _protocolService.Attach();

                OnAttachComplete(EventArgs.Empty);
            }
            catch (Exception e)
            {
                if (e.IsCritical())
                {
                    throw;
                }
            }
        }