.NET에서 라이브러리와 통신해야하는 멀티 스레드 환경이 있습니다. 라이브러리에는 몇 가지 제한 사항이 있으므로 다중 스레드 환경에서 제대로 작동하지 않습니다. 중간 스레드를 사용하여 멀티 스레드 환경과 통신 한 다음 라이브러리를 호출하여이 문제를 해결할 방법이 필요합니다. 나는 그 문제를 해결 한 해결책을 만들었지 만, 그것이 최선이라는 것을 확신하지 못했습니다. run 메서드가있는 비동기 스레드를 만들었습니다. run 메서드는 현재 작업 (설정 한 매개 변수)이 무엇인지 확인하고 해당 메서드를 실행하는 무한 루프에 있습니다.여러 스레드 동기화
내가 말했듯이, 나는이 해결책으로는 전혀 확신하지 못하고 올바르게 작동합니다. 그래서 그것을 해결할 더 나은 사람이 있다면 알려주십시오. (특히 C#과 관련된 경우).
부울 노트와 마찬가지로이 제한은 동시에 작동하고 데이터 손상을 일으키는 여러 스레드 때문이 아닙니다. 나는 모든 것을하기 위해 똑같은 스레드가 필요하다 (스레드 ID에 의존한다).
귀하의 접근 방식은 잘 들린다. 보류중인 작업이 없으면 무한 루프가있는 스레드가 잠자기 상태 여야합니다. 당신의 구현은 그렇게합니까? 그렇지 않은 경우 일부 코드를 게시하면 도움이됩니다. – dtb
아마도 [BlockingCollection] (http://msdn.microsoft.com/en-us/library/dd267312.aspx)을 사용하여 [ConcurrentQueue ] (http://msdn.microsoft.com /en-us/library/dd267265.aspx). –
dtb
동일한 스레드에서 모든 작업을 예약하는 사용자 지정 [TaskScheduler] (http://msdn.microsoft.com/en-us/library/system.threading.tasks.taskscheduler.aspx)를 구현할 수도 있습니다. – dtb