private static Task <T> Wrap <T>(Func <T> func) { try { return(Task.FromResult(func())); } catch (OperationCanceledException oce) { return(Task.FromCanceled <T>(oce.CancellationToken)); } catch (Exception ex) { return(Task.FromException <T>(ex)); } }
private static Task Wrap(Action action) { try { action(); return(Task.CompletedTask); } catch (OperationCanceledException oce) { return(Task.FromCanceled(oce.CancellationToken)); } catch (Exception ex) { return(Task.FromException(ex)); } }