문제

방금 봤어요 이 질문, 여기서 답 중 하나는이를 나타냅니다 System.Diagnostics.StopWatch 생산 코드가 아닌 성능 진단에만 사용해야합니다.

이 경우 .NET에서 정밀 타이밍을 얻는 가장 좋은 방법은 무엇입니까? 나는 현재 매우 간단한 건물의 초기 단계에 있습니다. 미디 MIDI-OUT 기능을 사용하는 시퀀서 나우 디오. 가능한 한 작은 지터로 1/10에 정렬 된 MIDI 메시지를 보낼 수 있기를 원합니다. 이것이 실현 가능합니까, 아니면 맥락 전환과 같은 것들이 내 하루를 망칠 것인가?

현재 콘솔 앱에 지속적으로 호출되는 코드가 있습니다. Stopwatch 150bpm에서 1/16 번째 노트의 스트림을 생성 할 때 지터를 계산합니다. 이 상황에서 지터는 매우 낮습니다. 그러나 나는 이것을 다른 스레드로 옮길 것이므로, 그것이 여전히 남아 있을지 모르겠습니다.

도움이 되었습니까?

해결책

P/Invoke에도 신경 쓰지 않으면 QueryPerformanCecounter를 사용할 수 있습니다. http://www.eggeadcafe.com/articles/20021111.asp

다른 팁

기본 스트리밍 MIDI API를 사용할 수도 있습니다. 나는 Naudio에 있다고 생각하지 않지만 C# MIDI 툴킷을 살펴보면서 그것을 지원하는지 확인할 수 있습니다. 그렇지 않으면 네이티브 미디 API P/호출 방법에 대한 두 가지 예가 있으며 자신의 출시를 굴릴 수 있습니다 ...

Windows 멀티미디어 타이머 "하드웨어 플랫폼에서 가능한 가장 큰 해상도 (또는 정확성)로 타이머 이벤트를 예약 할 수있는 응용 프로그램이 가능하다고 명시하고 있습니다.

예제로 사용하는 응용 프로그램은 MIDI 시퀀서입니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top