예제 #1
0
 public LibRetro(string modulename)
 {
     dll = new InstanceDll(modulename);
     if (!ConnectAllEntryPoints())
     {
         dll.Dispose();
         throw new Exception("ConnectAllEntryPoints() failed.  The console may contain more details.");
     }
 }
예제 #2
0
        public void Dispose()
        {
            instanceDll.Dispose();

            foreach (var smb in DeallocatedMemoryBlocks.Values)
            {
                smb.Dispose();
            }
            foreach (var smb in SharedMemoryBlocks.Values)
            {
                smb.Dispose();
            }
            SharedMemoryBlocks.Clear();
            DeallocatedMemoryBlocks.Clear();
        }
예제 #3
0
        public void Dispose()
        {
            WritePipeMessage(eMessage.eMessage_Shutdown);
            WaitForCompletion();
            instanceDll.Dispose();

            pipe.Dispose();
            mmva.Dispose();
            mmf.Dispose();
            rbuf.Dispose();
            wbuf.Dispose();
            foreach (var smb in DeallocatedMemoryBlocks.Values)
            {
                smb.Dispose();
            }
            DeallocatedMemoryBlocks.Clear();
        }
예제 #4
0
 public void Dispose()
 {
     //TODO: better termination of course
     instanceDllCore.Dispose();
     instanceDll.Dispose();
 }