로컬 텍스트 파일에서 일부 데이터를 저장 및 검색하려고하는 UWP 응용 프로그램이 있지만 응용 프로그램을 교착 상태에 빠뜨리려 고해도 아무 문제가 없습니다. 일어날 동기가 필요한 물건 때문에, 나는 작업을 사용하고 그 완료를 기다린다. 그럼에도 불구하고, 응용 프로그램은 잠근다.이 교착 상태를 해결하는 방법은 무엇입니까?
나는 "MainPage"라는 내 UWP 응용 프로그램과의 생성자에 페이지가 나는 다음과 같은 코드를 가지고는 뷰 모델에 대한 방법을 (호출하기 때문에
var listenkeyViewModel = new ListenkeyViewModel();
listenkeyViewModel.GetKey();
listenkey = listenkeyViewModel.Listenkey;
가져 오기 키 여기에 문제가있다을하는 내가 호출 동기가 최대한 빨리 것이 바람직 할 것이다 만드는 생각했기 때문에 나는 동기로 만들었습니다.
public void GetKey()
{
try
{
var listenKeyTask = RetrieveListenKey();
_listenkey = listenKeyTask.Result;
}
catch (Exception e)
{
}
}
public static async Task<string> RetrieveListenKey()
{
try
{
var storageFolder = Windows.Storage.ApplicationData.Current.LocalFolder;
var listenkeyFile = await storageFolder.GetFileAsync("listenkey.txt");
return await Windows.Storage.FileIO.ReadTextAsync(listenkeyFile);
}
catch (Exception e)
{
throw new Exception("Could not load file");
}
}
을 나는 것입니다 "끝까지 비동기"알고 있지만이 나는 생성자를 만들 수 없습니다. 여기 수없는 곳 원래 코드는 비동기 적입니다. 어떻게하고 있습니까? 교착 상태에 빠지기로되어 있나? 난 이해가 안 돼요.
코드를 생성자에서 멀리 옮깁니다. 'InitializeAsync'또는 무엇이든간에 비동기 메소드를 사용하십시오. 최상의 솔루션입니다. –