타사 win32 dll을 모든 비즈니스 논리의 게이트웨이로 사용하는 웹 응용 프로그램 (MVC)을 빌드해야합니다 (로그온 메커니즘, 함수 및 일부 유지 관리) 상태). 이 dll은 멀티 스레딩을 위해 설계되지 않았습니다. MTA 시나리오에서 dll은 특정 시간 후에 비틀 거립니다. ASP-Classic 모드 (Asp-CompatHandler를 사용하는 STA)에서 ASP.NET MVC를 실행하는 것이 좋습니다. 나는 이것을 성공으로 시도했습니다. 모든 것이 안정적으로 실행됩니다. 문제는 동시 사용자가 많으며 일부 함수 호출에는 몇 초 (최대 10 초)가 소요된다는 것입니다. 모든 사용자가 서로를 차단하면 끔찍한 결과를 초래할 것입니다. 동일한 응용 프로그램 내에서 차단 효과를 최소화하는 최선의 방법은 무엇입니까? 10 명의 사용자 만 서로 차단해야한다고 가정 해보십시오.Asp.Net MVC 및 다중 스레드 용으로 설계되지 않은 Win32 DLL
이경우 좋을 텐데 ... 웹이 MTA 에서 실행 ... 웹은 한 번만 배포 ... 모든
사람이 나에게 몇 가지 조언을 줄 수 동일한 프로세스 내에서 실행 이것을 해결하는 좋은 개념?
감사합니다.
업데이트 - 해결책을 찾았습니다 : Ami Bar의 "스마트 스레드 풀"덕분에 내가 찾고 있던 동작을 쉽게 수행 할 수있었습니다. 나는 근로자 개념을 구현했다. (사용자가 특정 근로자를 공유하고이 작업자를 서로 차단한다.) 각 근로자에 대해 이제는 최대 스레드 수와 최소 스레드 수를 가진 스레드 풀 인스턴스가 생겼다. 음, 스레드 풀에 대한 아이디어는 아니지만 작업 항목을 처리하는 것이 매우 쉽습니다. 또한 멋진 다른 기능도 있습니다. 웹 응용 프로그램이 MTA에서 실행 중입니다. 몇 시간 동안 안정적인지 확인하기 위해 몇 가지 부하 테스트를 준비 할 것입니다. 여기를 참조하십시오 : http://www.codeproject.com/Articles/7933/Smart-Thread-Pool