C#
-
C# async/await — ConfigureAwait, SynchronizationContext, ContinueWith
WPF 앱에서 Task.ContinueWith + Unwrap()으로 짜여있던 비동기 커맨드 체인을 async/await로 리팩터링하다가, Application.Current.Dispatcher.Invoke를 왜 지워도 되는지, ConfigureAwait(false)가 정확히 어디까지 영향을 주는지 헷갈려서 정리한 내용이다. 나중에 다시 헷갈릴 때 이 글부터 다시 읽는다. 1. ContinueWith + Unwrap이 필요했던 이유 아래처럼 커맨드 하나가 여러 비동기 작업을 순서대로 거치는 코드가 있었다. 장비 상태를 확인하고, 통과하면 다음 상태를 확인하고, 그것도… Continue reading
-
UnhandledException에 대한 대처방법

UnhandledException에 속하는 Exception들은 대부분의 다른 것들과 달리 try..catch문에 의해 걸러지지 않고 바로 프로그램을 종료시켜 버린다. UnhandledException은 시스템 자원이나 커널 쪽의 문제이기 때문에 프로그램이 계속 운영할 수 없는 상황인 경우들이기 때문에 종료되는 것을 막지 못하며 막더라도 문제를 발생시킨다. 이 UnhandledException을 해결하기 위한 몇 가지 대처 방법을 C# 기준으로 소개한다. 대표적인 UnhandledException 자주 볼 수 있는 UnhandledException으로는… Continue reading
