2010-06-14 4 views
3

EXE와 DLL이 서로 다른 프로세스에서 실행되고 있습니다. DLL에서 EXE로 많은 양의 데이터를 보내야하는데, 이는 50 자에서 2000 자 이상으로 다양합니다 (데이터는 DB에 저장된 레코드의 recordid입니다). 데이터의가 일괄 전송됩니다있는 SendMessage-를 사용파일 간 프로세스 통신에 적합합니다.

  1. :

    나는 약 2 그렇게 할 수있는 옵션을 생각했다.
  2. 중간 파일을 사용하여 데이터를 전송하십시오.

누구든지 방법의 장단점을 나열 할 수 있습니까?

C# .NET을 사용하여 구성 요소를 개발했습니다.

답변

2

입니다. 두 프로세스 간 통신이 자주 발생하지 않는 한,이 작업은 훌륭하게 수행되고, 구성하기가 쉽고, 매우 빠릅니다.

다른 해결책은 공유 메모리를 버퍼로 사용하는 것이 좋습니다. 그것도 작동하지만 더 많은 노력이 될 것 같습니다. 프로세스간에 많은 데이터를 이동하는 경우에만 가치가 있습니다.

0

또 다른 쉬운 설치 솔루션은 데이터베이스를 사용하는 것입니다.

특히 두 프로세스가 동시에 활성화되어 있는지 확인할 수없는 경우 데이터베이스 (SQL Server Express 또는 Compact)를 사용하여 데이터를 대기시킬 수 있습니다.

이렇게하면 양방향 통신이 가능합니다.

0

@ Ira의 명명 된 파이프는 아마도 가장 간단하고 최상의 솔루션이라고 생각합니다. 하지만 통신 메커니즘의 대부분은 결국 공유 메모리 파일 구현으로 떨어집니다. 고통을 느끼고 싶다면 .NET 4 has support for memory mapped files. 바라건대,이 링크는 도움이됩니다.