2013-10-12 29 views
1

下面的代碼是爲共享內存開發的。當它用於兩個服務或兩個用戶應用程序時,它工作得很好。但是當內存在服務中創建時,應用程序無法找到內存。這段代碼有什麼問題?用戶應用程序和服務之間的SharedMemory

服務:

mmf=MemoryMappedFile.CreateNew("ALFMap",10000); 
    bool mutexCreated; 
    Mutex mutex=new Mutex(true,"ALFMutex",out mutexCreated); 
    stream=mmf.CreateViewStream(0,1000); 
    BinaryWriter writer=new BinaryWriter(stream); 
    writer.Write("I am reza dadkhah"); 
    mutex.ReleaseMutex(); 

在用戶應用程序:

  using (MemoryMappedFile mmf = MemoryMappedFile.OpenExisting("ALFMap",MemoryMappedFileRights.FullControl)) 
      { 
      Mutex mutex=Mutex.OpenExisting("ALFMutex"); 
      mutex.WaitOne(); 
      using (MemoryMappedViewStream stream=mmf.CreateViewStream(0,1000)) 
       { 
       BinaryReader reader = new BinaryReader(stream); 
       textBox1.Text=reader.ReadString(); 
       } 
      mutex.ReleaseMutex(); 
      } 

回答

0

您是否嘗試過使用你的應用程序文件中寫入內存的內容?首先嚐試並確認該值是否在內存中。

相關問題