public void PostQuery(Action actionOnRead, Action<Exception> actionOnCompletion)
{
Exception exception = null;
_isAsync = true;
SpinWorker.Work(() =>
{
try
{
Query();
actionOnRead?.Invoke();
_isAsync = false;
Dispose();
}
catch (Exception e)
{
exception = e;
_isAsync = false;
Dispose();
throw; // 상위 Exception Handler가 처리하도록 예외를 던진다.
}
},
() => { actionOnCompletion(exception); });
}