저는 크리스마스 2008 이후로 같은 프로젝트를 진행해 왔습니다. 콘솔 응용 프로그램 (트레이스 문장 만 인쇄하는 것)에서 전체 Windows 응용 프로그램. 물론, 괜찮아. 유일한 것은 앱을 실행하는 데 몇 분이 걸릴 수있는 부분이 있다는 것입니다. 사용자 상태 나 오류를 표시하려면 다중 스레드해야합니다. 그러나 나는 어디에서 시작해야할지 모른다.다중 스레드 : UI를 업데이트하여 진행 상황을 표시하는 방법
저는 WPF에서 약간의 UI를 구축했습니다. 그것은 아주 기본적인 것이지만 필요에 따라 확장하고 싶습니다. 이 응용 프로그램은 소스를 선택하고 대상을 선택한 다음 시작을 클릭하여 작동합니다. 프로세스가 진행됨에 따라 목록 상자를 업데이트하고 싶습니다. SQL Server 설치와 마찬가지로, 각 단계의 이름이 완료되면 녹색 확인 표시가 나타납니다.
초보자는 어떻게 멀티 스레딩을 시작합니까? 어떤 라이브러리를 체크 아웃해야합니까? 모든 조언을 크게 주시면 감사하겠습니다.
p.s. 나는 현재 http://www.codeplex.com/smartthreadpool
@Martin이 라이브러리에 대해 읽고 있어요 : 여기 내 응용 프로그램이 구성되어 방법 :
- 엔진 : 실행합니다 모든 주요 구성 요소 사전 정의 된 순서
- Excel에서 : 도서관 내가 쓴// 읽기 닫기 열/위해 COM을 포장하는 통합 문서 저장
- 도서관 : 나는 Excel 데이터를 변환 및 액세스 을 위해 수험 공부하기 위해 작성한 클래스 : 통합 문서 형식 (총 5)
- 비즈니스 클래스의 다른 유형을 이해 도서관
- DB 라이브러리 : 당신이 아이디어를
- Serialier를 얻을 : 년의 경우 응용 프로그램 충돌
I의 데이터를 저장 Access 데이터에
내 주요 요구 사항은 내가 진행을
@Frank을 표시하기 위해 내 UI를 업데이트 할 것입니다? 신청서에 어떻게 통보합니까?
@ 에릭 리 퍼트 : 예, 지금 조사 중입니다. 내가 복잡한 일을하기 전에.
자세한 정보가 필요하면 알려주세요. 현재 Unit Test에서이 응용 프로그램을 실행 했으므로 콘솔 응용 프로그램이 맞지 않는다고 생각합니다. 나는 이것을하기 위해 Resharper를 사용한다. 나는 지금 당장 앱을 사용하는 유일한 사람이지만 더 매력적인 인터페이스를 원합니다.
멀티 스레딩 복잡성을 추가하기 전에, 사용자가 단일 스레드 인 동안 사용자가 응답 할 수 있도록 작성하는 방법을 고려해보십시오. 알고리즘을 변경하여 약간의 계산을 수행하고 진행 상황을 확인한 다음 UI를 업데이트하고 중단 한 부분에서 계산을 다시 시작할 수 있습니다. –
매우 어려운 데이터베이스 API를 다루는 경우.사용자는 느린 네트워크, 네트워크 장애, 이름 조회 시간 초과를 갖습니다. DB는 바쁠 것입니다. 원시 네트워크 I/O를 다루는 것은 non-blocking/async 모드에서 가능합니다. 그러나 ADO.NET을 통해가는 것은 실제로 가능한 옵션은 아닙니다. – nos
@noselasd : 저는 ADO.NET을 조금만 사용하고 있습니다. 백엔드 저장소로 사용하지 않고 있습니다. – Chris