2012-02-28 2 views
1

D2XX 인터페이스를 통해 오디오 데이터를 FTDI 장치에 공급하는 응용 프로그램이 있습니다. 내 응용 프로그램에 초점이 맞추어 져 있고 아주 작은 CPU (5 %)를 사용하는 동안 완벽하게 작동합니다. 그러나 CPU를 망치질 (다른 응용 프로그램으로 전환하거나 무거운 그림으로 그려 줌) 때로는 오디오에서 말더듬 소리를 낼 수 있습니다.닷넷의 실시간 우선 순위

이 문제 (프로세스/스레드 우선 순위를 실시간, MMCSS 일정 잡기 등)를 방지하기 위해 많은 노력을했지만 여전히 가끔 발생합니다.

다른 방법으로 우선 순위를 올리거나 커널 드라이버를 작성하지 않으면 불가능합니까?

+0

얼마나 많은 버퍼링을 USB 주변 장치에 설치 했습니까? –

+0

방법이 없습니다. 커널에서 우선 순위가 높은 항목을 만들 수는 있지만 실시간 커널이 아니기 때문에 100 % 보장되지 않습니다. – Christopher

답변

-1

.net 4.0의 병렬 프로그래밍 가능성을 고려해 볼 수 있습니다. 작업 팩토리를 작성하고 여러 병렬 스레드로 작업을 수행하게되면 할당 된 CPU %가 더 높아집니다.

+1

문제는 처리량이 아니라 대기 시간이라고 생각합니다. 그리고 당신의 해결책은 잠복을 돕지 못할 것입니다. – svick

0

프로세스 (스레드가 아닌) 우선 순위를 "실시간"으로 설정하면 스레드가 항상 실시간이 아닌 다른 프로세스의 스레드보다 먼저 실행되어야합니다. 그래서 이것이 당신이 할 수있는 최선이라고 생각합니다.

그러나 전체 시스템이 응답하지 않을 수 있으므로 절대적으로 필요한 경우에만 실시간 프로세스 우선 순위를 사용해야합니다.

0

장치를 서비스하는 스레드의 우선 순위를 높이거나 가능한 경우 장치와의 통신을위한 버퍼 크기를 늘립니다.

창 안에서 작업을 전환하는 최소 시간은 10ms입니다. 스레드가 장치의 데이터를 정해진 시간 내에 처리하지 못하면 소리가 들리고 끊어집니다.