2014-12-01 7 views
3

나는 datagridview가있는 Windows 양식이 있으며 목록에 특정 열 값을 읽습니다. 단일 메모리 맵핑 된 파일에서리스트의 모든 값을 공유해야하지만 다음은 내 관심사입니다. 1. 목록의 크기를 바이트로 찾기. 2. 목록의 모든 항목을 공유해야합니다.공유하는 방법 메모리 매핑 된 파일의 목록 값

string MyName = "Seema"; 
    int totalBytes = MyName.Length * sizeof(Char) + 4; 
    public List<string> myList = new List<string>(); 

MemoryMappedFile MyText = MemoryMappedFile.CreateOrOpen("MyGlobalData", howManyBytes); 
       byte[] array1 = new byte[howManyBytes]; 
       array1 = GetBytes(Name); 

       using (var accessor = MyText.CreateViewAccessor(0, array1.Length)) 
       { 
        accessor.WriteArray(0, array1, 0, array1.Length); 
       } 


static byte[] GetBytes(string str) 
     { 
      byte[] bytes = new byte[str.Length * sizeof(char)]; 
      System.Buffer.BlockCopy(str.ToCharArray(), 0, bytes, 0, bytes.Length); 
      return bytes; 
     } 

이 mylsit 항목 1. 애플 2. 망고 3. 파인애플

내가 위에서 진행 어떻게 인도 해주십시오을 가지고 가정 : 여기

내가 하나의 변수 값을 공유하고있어 내 샘플 코드 코드

+2

XML, JSON, 바이너리 등 많은 시리얼 라이저 중 하나를 사용하여 공유 할 데이터를 직접 작성하는 것보다 훨씬 쉽게 느낄 수 있습니다. 직접 작성하는 방법으로 명확하게 설명해 주시겠습니까? 요소? –

+0

궁금한 점, 왜 메모리 매핑 파일을 사용하고 있습니까? 다른 프로세스와 통신하고 있습니까? – RenniePet

답변

0

잠금 (뮤텍스)을 사용해야하며 배열 크기를 mmf의 첫 번째 요소로 저장하려고합니다.