필자가 가지고있는 프리즘 응용 프로그램은 여러 시동 작업을 수행하는데 어느 정도 시간이 걸릴 수 있으며, 일부 작업이 제대로 실행되지 않으면 응용 프로그램을 기능적으로 사용할 수 없게 만듭니다. 이 때문에 셸 이전에 표시되는 시작 화면이 있고 각 시작 작업의 상태에 대한 로그가 표시됩니다. (시작 작업은 모듈의 공유 서비스에 의해 처리됩니다.) 화면에는 IsIndeterminate가 True로 설정된 ProgressBar가 포함됩니다 (적어도 시작 작업이 실행되는 동안). 표시된 로그에 모듈 자체의 초기화를 보여주는 시작 작업 중에도 포함됩니다. (로그의 첫 번째 작업)프리즘 모듈 로딩 업 로딩 디스패처 스레드. 이 주변에 방법이 있을까요?
문제점은 제 모듈 중 하나가 상당히 큰 타사 라이브러리를로드한다는 것입니다. 나는 원래이 모듈을 모든 것을 등록하고 Unity에 실제 해상도를 남겨 두었습니다. 그러나 이것은 두 가지 이슈를 제시했다. 1) 사용자가이 모듈의 뷰가로드 될 지점에 도달하면이 큰 라이브러리를로드하는 동안 응용 프로그램이 일시 중지됩니다. 2) 사용자가보기와 상호 작용하기 전에이 모듈의 일부 비즈니스 로직이 활성 상태 여야합니다. 그래서 내 서비스의 대부분에 대해 RegisterType()을 호출하는 대신 IModule 구현에서 RegisterInstance를 호출합니다. 이것은 모두 좋고 좋은 것입니다.
Unity가이 모듈에 모든 서비스를 생성 할 때이 타사 라이브러리가 맨 앞에로드되면 모듈 초기화가 완료되는 데 시간이 걸립니다. Dispatcher 스레드가 모듈을로드하는 것으로 점령 된 것 같아서 시작 화면의 진행 표시 줄이 움직이지 않습니다.
이 느린 로딩 모듈을 비동기 적으로로드하거나 비슷한 방법으로 진행 막대를 움직일 수 있습니까? 가능하지 않다면 세상 끝은 아니지만 가지고 있으면 좋을 것입니다.