내 WPF 프로젝트는 iTunes API를 사용합니다. 시작 시점에 iTunes 라이브러리를 API에서 메모리로로드하는 몇 가지 백그라운드 스레드가 있습니다 (앱 실행 후 성능상의 이유로).매우 느린 API를로드하거나 캐시하는 가장 빠른 방법은 무엇입니까?
그러나 라이브러리를로드하는 것은 매우 느립니다. 거의 3 분 정도.
최근에 라이브러리를 DataSet에 저장해 봤지만로드 시간이 더 빨라졌으며 앱이 실행되면 백그라운드에서 DataSet을 업데이트 할 수있었습니다.하지만 실제로는 작동하지 않았습니다. DataSet을 제대로 저장하지 않습니다.
로컬 MDF 데이터베이스를 사용해 보았지만 그 중 하나를 기억할 수없는 이유로 잘못되었습니다.
주된 포인트는 iTunesLib.IITTrack COM 개체를 저장해야한다는 것입니다.
제 질문은이 라이브러리를 더 빨리로드 할 수있는 방법에 대한 아이디어가 있습니까? 나는 아이디어가 부족하다.
난과 같이 STA로 전환 : \t \t \t \t this.Dispatcher.Thread.SetApartmentState (ApartmentState.STA); 아무 것도 바뀌지 않는 것 같습니다. 나는 그것이 내 코드라고 상상할 수 없다. 기본적으로 Song 객체를 생성하고 그것을 콜렉션에 추가하는 for 루프이다. 지방을 다듬을 수 있는지 알아봐야 겠어. –
ApartmentState를 실행 한 후에는 스레드를 작성하기 전에 설정할 수 없습니다 (직접 트레드를 작성하는 경우, 그렇지 않은 경우에는로드 스레드를 직접 작성하십시오. 변경). –
COM 개체가 STA 스레드에서 실행되지 않는 이상한 문제가 많이 발생 했으므로 이것이 가장 좋은 방법입니다. –