기본적으로 - 우리는 단위 테스트를 작성합니다. 때때로 이러한 단위 테스트는 스레드를 시작하고 종종 스레드 풀에서 작업을 시작합니다. 백그라운드 스레드에서 문제가 발생하면 미래의 테스트에서 이상한 문제가 발생할 수 있습니다. 우리가 각 테스트의 기본 분해에하고 싶은 것은 기본적으로C# 스레드 풀 및 다른 스레드 검사
- 스레드가 어떤 실행하는 경우
- 테스트를 실패 실행중인 검사가 정상을 위해, 지금
안입니다 실마리를 열거하고 나중에 비교할 수 있습니다 - 괜찮습니다. 스레드 풀은 사물을 엉망으로 만듭니다. 왜냐하면 새로운 스레드가 유효하게 만들어 졌기 때문에 아무것도하지 않고 기다리고 있기 때문입니다. 괜찮습니다. 테스트가 실행 중이라면 문제가되지 않습니다. 또한 기억해야 할 것은 테스트 또는 코드 테스트를 작성하지 않고 있습니다. 다른 누구도 시도하지 못하도록하는 기본 라이브러리를 작성하고 있지만 실제로 시도 할 수는 없습니다. 쓰레드 풀이나 그와 비슷한 것, 왜냐하면 나는 누군가가 표준 것을 사용하고 있지 않다는 것을 확신 할 수 없기 때문이다.
누구나 스레드 풀에서 소유하고있는 스레드가 무엇인지 알려주고 유휴 상태인지 여부를 알 수있는 방법이 있습니까? 내 다음 단계는 리플렉션을 사용하여 개인 변수를 크롤링하는 것입니다.하지만 누군가가 더 좋은 방법을 찾고 싶습니다.
덕분에, 대런
ThreadPool.GetAvailableThreads(), GetMaxThreads()와 비교하십시오. 코드가 매달려있는 tp 스레드를 남겨두면 테스트에서 실패해야합니다. 그렇지 않으면 프로덕션에서 제대로 끝나지 않을 것입니다. –