나는 문제가 나는 것들이 시간이 걸릴 수 있습니다 다른 장소의 무리에 대처하는 방법을 가장 잘 알고 없다는 것입니다 서버 (데이터베이스 또는 인터넷 중 하나)에서 데이터를 기다리는 동안 정지 할 가능성이있는 응용 프로그램을 설계하고있다. 백그라운드 스레드에서 모든 것을 실행해야합니까?
나는 접근이 일어나고있는 동안 사용자에게 '로드'대화 상자를 표시하는 행복하지만, 이상적으로 나는 위로 쓸어 및 단기 실행 작업에 사라 이것을 원하지 않는다.마이크로 소프트 워드는 당신이 버튼을 클릭하는 것처럼, 아주 능숙하게이 문제를 처리하기 위해 나타나고 작업이 몇 초 후에 당신이 '작업 ...'대화 상자를 얻을, 시간이 오래 걸립니다. 작업은 여전히 동기식이므로 작업을 중단 할 수 없습니다. 그러나 동일한 작업이 빠르게 발생하면 분명히 대화 상자가 표시되지 않습니다.
몇 가지 일반 배경 작업자 스레드 처리기를 고안해 내 데이터 처리의 99 %가 정적 원자 방법으로 이미 완료되었습니다. 가능하면 최선의 방법을 찾고 싶습니다. 사람이 패턴, 코드 또는 제안이있는 경우
나는 그들에게 모든
건배를 환영
이상적으로
어떻게 당신을 제외하고 말을 다른이 추가 스레드의 오버 헤드를 가지고있다? –
@ 환불 없음 반환 값 : "추가 스레드의 오버 헤드"가 없습니다. 차이점은 접근법에있었습니다. 나는 이것을 처리하기 위해 주 스레드에 타이머가없는 다른 옵션을 주었다. 비동기 메서드 호출은 별도의 스레드에서 수행되므로 솔루션에 별도의 스레드가 필요합니다. 또한 비동기 처리를 위해 TPL에서 작업을 살펴볼 것을 제안했습니다. –
그래도 비동기 코드가 있으면 OS가 대신 스레드를 관리합니다. 귀하의 접근 방식은 개발자를위한 더 많은 작업이며 오류가 발생할 여지가 많습니다. –