생성자에서 비동기 메서드를 호출할 수 있나요?
이 문제는 비동기 코드를 클래스 생성자에 통합하려고 할 때 자주 발생합니다. 특히 이 예제의 목표는 개체 인스턴스화 중에 getWritings()
메서드(JSON 데이터를 구문 분석)를 호출하는 것입니다.
문제
처음에는 생성자에서 getWritings()
를 직접 호출하고 이를 비동기 메서드로 만들면 null 반환 값과 빈 LongListView
이 생성되었습니다. 이 문제를 해결하기 위해 getWritings().Result
을 통해 결과를 얻으려고 하면 UI 스레드가 차단됩니다.
솔루션
권장되는 접근 방식은 데이터 검색의 비동기 특성을 처리하도록 애플리케이션을 설계하는 것입니다. 생성자는 데이터가 다운로드되고 있음을 나타내는 뷰를 설정해야 하며 다운로드가 완료된 후에 실제 데이터 업데이트가 발생해야 합니다.
이 주제에 대한 추가 리소스에는 비동기 생성자에 대한 블로그 게시물, MVVM 시나리오의 비동기 데이터 바인딩에 대한 MSDN 문서, async void
방법의 중요성을 피하는 것을 강조하는 비동기 모범 사례에 대한 MSDN 문서가 포함됩니다.
위 내용은 생성자 내에서 비동기 메서드를 호출할 수 있나요?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!