우리는 주로 C# (서비스, 멀티 스레딩 등)으로 작성된 큰 프로젝트를 가지고 있습니다. 그러나 코어 번호 크 런칭 알고리즘은 언 매니지드 C++로 작성되어 고속 (OpenMP 등)입니다.비 관리 C++ 코드에서 C# 속성 사용
현재 불행히도 우리는이 두 세계간에 데이터를 교환하기 위해 많은 노력을 기울여야합니다. 즉, 각 C++ 클래스에 대해 C++/CLI로 래핑 클래스를 작성해야합니다. (사실상) C#에서 필요한 설정 (속성) - "세계"에는 C++ 세계 (헤더 파일)에 복사본이 있고 래퍼 클래스에서 앞뒤로 명시적인 변환이 있습니다. 이 아키텍처는 매우 비효율적이며 오류가 발생하기 쉽습니다.
기본 질문 : 언젠가 자동으로 비 관리 C++에서 속성을 사용하여 C# 클래스를 공유 할 수 있습니까? (우리는 읽고해야만합니다!)
보조 질문 : 위와 같은 경우에 아키텍처를 개선하는 방법에 대한 조언을 해 줄 수 있습니까? 우리의 고려 사항 중 하나는 C++로 완전히 전환하는 것이었지만 적절한 라이브러리를 찾고 .NET에서 현재 (시스템 -) 모든 작업에 대해 깨끗한 코드를 작성해야하는 것은 좋지 않습니다. 당신의 도움 및 안부, 야콥에 대한
많은 감사
내 차 작업이 특정 높은 perfromance, 낮은 대기 시간 DLL을 관리 인터페이스를 작성하는 것입니다 내 직장에서 비슷한 문제를 처리하고
C#에서 알고리즘을 작성하는 것이 병목 현상이라고 확인 했습니까? C# 4.0은 병렬 개발을 지원합니다. – Nick
아니요, 아직이 작업을 수행하지 않았습니다. 그리고 당신이 옳습니다. 우리는이 점에 대해 확신을 주어야합니다. 그러나 메모리 캐싱과 같은 특정 속성에 의존하기 때문에 알고리즘이 CLR에서 비슷한 속도로 실행될 것입니다. –
[프로토콜 버퍼] (http://code.google.com/p/protobuf/)는 어떻습니까? [protobuf-net] (http://code.google.com/p/protobuf-net/)을 사용하여 C#과 함께 사용할 수 있습니다. – megabyte1024