문제

제가 작업중인 응용 프로그램에서 저는 SaveFiledialog 및 OpenFiledialog를 관습적인 목적으로 사용하려고 노력했습니다 (파일 저장 및 열기).

그러나 애플리케이션은 UI를 소유 한 스레드에서 너무 많은 시간에 민감한 일이 발생하기 때문에 충돌없이 모달 양식/대화를 지원할 수 없습니다.

해당 기능을 UI 소유 스레드에서 이동시키기 위해 응용 프로그램을 다시 작성하는 것은 즉시 실용적이지 않습니다. 내가 작업 한 기능을 완료하려면 두 파일 대화 상자를 대체해야합니다.

내 UI 소유 스레드를 차단하지 않는 것이 내가 사용할 수있는 것이 있습니까?

도움이 되었습니까?

해결책

내가 아는 유일한 기존 옵션은 IS입니다 Dialog Workshop.net, 상업용 제품. 여기에는 모드가없는 옵션이있는 대화 세트가 있습니다 (또는 별도의 창 대신 창 양식에 직접 포함).

그러나 나는 대신 시간 민감한 논리를 별도의 스레드로 옮기려고 생각합니다. 모드가없는 대화 상자를 사용하면 파일 대화 상자가 작동하는 방식이 작동하지 않기 때문에 사용자가 혼란 스러울 수 있습니다. 블로킹 할 수없는 UI를 갖는 데 다른 잠재적 결과가 있습니다.

다른 팁

UI를 소유 한 스레드에서 시간에 민감한 일이 너무 많습니다.

그것이 당신의 진짜 문제입니다. .NET은 매우 강력한 멀티 스레딩 지원을 제공합니다. 나는 당신이 다른 곳으로 이런 것들을 움직일 것을 제안합니다. 오픈/저장 대화 상자를 재 구현하는 것보다 작업이 적을 수 있으며 장기적으로 앱의 경우 확실히 적습니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top