PCI 버스를 통해 내 PC에 연결된 하드웨어가 있습니다. 장치 드라이버 주변의 .NET 래퍼를 통해 하드웨어에 액세스하고 있습니다.PCI 버스에 연결된 장치에 비동기 적으로 액세스하려면 스레드를 사용해야합니까?
장치가 PCI 방식으로 수행되는 방법에 대한 사양이 없습니다. 어느 것이 저의 첫 번째 질문으로 연결됩니다.
1) PCI를 통해 연결된 장치가 특정 속도로 데이터를 전송하도록 보장되어 있습니까?
2) 기기와 통신 할 때 내 UI가 응답 속도를 유지하고 싶습니다. 스레드 풀에서 장치와의 통신을 시작하는 것이 좋습니까? 아니면 PCI 버스에 얼마나 빨리 액세스하는지 비교하는 오버 헤드가 너무 큽니까?
편집 :
질문이 다시 작성되었습니다. 긴 노동 일의 끝을 지나치게 반영했다.
스레드가 스레드 풀 스레드가되도록 요구 사항이 제거되었습니다.
PCI 버스 리소스에 액세스하려면 권한이 부여 된 I/O 명령어를 실행하고 포인터를 물리적 버스 주소에 매핑 할 수있는 유일한 종류의 코드 인 장치 드라이버가 필요합니다. C#에서는 이러한 코드를 작성할 수 없습니다. –
드라이버를 제외시키려는 추상화 수준 및 드라이버의 .NET 래퍼입니다. 근본적인 질문은 동일하게 남아 있습니다. – kasperhj
기술적으로는 작동하지만 스레드를 독점적으로 사용할 수는 없습니다. 그것은 풀입니다. 아이디어는 특정 작업에 이러한 스레드를 사용하고 릴리스하는 것이 좋습니다. 당신은 당신 자신의 쓰레드를 만들 수 있고 (그것의 우선 순위 등을 제어한다.), 쓰레드 풀을 사용하지 않는다. –