저는이 코드를 사용하고 있으며 비동기 및 대기와 관련된 몇 가지 질문에 답했습니다. 나는 이전에 "프로젝트"를 닫는 방법을 만들었고 비동기 위임자와 비동기 적으로 사용합니다. 또한 광고 된대로 작동하는 다른 상황에서 사용하기 위해 deserializeAsync()
메서드를 만들었습니다. 그러나 이제는 내 응용 프로그램의 Open Project 기능을 구현하려고합니다. 다른 대리자에서 사용한 비동기 도우미 메서드를 사용하여 메서드를 작성했지만 사용자에게 파일 탐색 대화 상자를 통해 정보를 묻는 메시지가 필요할 때 ok 해결책인지 알 수 없다는 것을 깨달았습니다. 파일 찾아보기 대화 상자를 표시하면 메서드 실행이 멈추고 더 이상 비동기 적이 지 않습니다. 가장 좋은 방법은 무엇입니까?비동기 메서드의 정보 사용자에게 묻습니다.
CloseProjectAsync().Wait();
을 그냥 프로젝트 열기 방법은 동 기적으로 모든 것을 실행하거나 내가 "가능한 비동기로"비동기 방식 내가 가지고있는이 방법을 만들 수 있죠을 기다리고의 더 나은 것 보자 : 내 비동기 방법은 다음과 같이 .Wait()
해야 하는가?
private async Task OpenProjectAsync()
{
//get folderPath
if (m_OpenFileService.ShowDialog(null) != true)
return;
await CloseProjectAsync();
await Task.Run(() => {
string[] lines = File.ReadAllLines(m_OpenFileService.FileName);
});
await DeserializeAsync(something);
}
파일 IO 메서드가 이미 비동기 적이므로 새 스레드 풀 스레드를 시작하고 IO 파일 차단 방법을 실행할 필요가 없습니다. – Servy