From f18c3b3eeb69d5f7c7b50054114e499a45cb6ac5 Mon Sep 17 00:00:00 2001 From: Brandon Minnick <13558917+brminnick@users.noreply.github.com> Date: Tue, 30 Jul 2019 17:54:02 -0700 Subject: [PATCH] Add RemoveDefaultExceptionHandling --- README.md | 19 +++++++++++-------- 1 file changed, 11 insertions(+), 8 deletions(-) diff --git a/README.md b/README.md index 5d44dba..0296336 100644 --- a/README.md +++ b/README.md @@ -149,12 +149,16 @@ void InitializeSafeFireAndForget() SafeFireAndForgetExtensions.SetDefaultExceptionHandling(ex => Console.WriteLine(ex)); } +void UninitializeSafeFireAndForget() +{ + // Remove default exception handling + SafeFireAndForgetExtensions.RemoveDefaultExceptionHandling() +} + void HandleButtonTapped(object sender, EventArgs e) { // Allows the async Task method to safely run on a different thread while not awaiting its completion - // onException: If a WebException is thrown, print its StatusCode to the Console. **Note**: If a non-WebException is thrown, it will not be handled by `onException` - // Because we set `SetDefaultExceptionHandling` in `void InitializeSafeFireAndForget()`, the entire exception will also be printed to the Console ExampleAsyncMethod().SafeFireAndForget<WebException>(onException: ex => { @@ -163,7 +167,6 @@ void HandleButtonTapped(object sender, EventArgs e) }); // HandleButtonTapped continues execution here while `ExampleAsyncMethod()` is running on a different thread - // ... } async Task ExampleAsyncMethod() @@ -190,7 +193,7 @@ public event EventHandler CanExecuteChanged remove => _weakEventManager.RemoveEventHandler(value); } -public void OnCanExecuteChanged() => _canExecuteChangedEventManager.HandleEvent(this, EventArgs.Empty, nameof(CanExecuteChanged)); +void OnCanExecuteChanged() => _canExecuteChangedEventManager.HandleEvent(this, EventArgs.Empty, nameof(CanExecuteChanged)); ``` #### Using `Delegate` @@ -204,7 +207,7 @@ public event PropertyChangedEventHandler PropertyChanged remove => _propertyChangedEventManager.RemoveEventHandler(value); } -public void OnPropertyChanged([CallerMemberName]string propertyName = "") => _propertyChangedEventManager.HandleEvent(this, new PropertyChangedEventArgs(propertyName), nameof(PropertyChanged)); +void OnPropertyChanged([CallerMemberName]string propertyName = "") => _propertyChangedEventManager.HandleEvent(this, new PropertyChangedEventArgs(propertyName), nameof(PropertyChanged)); ``` #### Using `Action` @@ -218,7 +221,7 @@ public event Action ActionEvent remove => _weakActionEventManager.RemoveEventHandler(value); } -public void OnActionEvent(string message) => _weakActionEventManager.HandleEvent(message, nameof(ActionEvent)); +void OnActionEvent(string message) => _weakActionEventManager.HandleEvent(message, nameof(ActionEvent)); ``` ### `WeakEventManager<T>` @@ -235,7 +238,7 @@ public event EventHandler<string> ErrorOcurred remove => _errorOcurredEventManager.RemoveEventHandler(value); } -public void OnErrorOcurred(string message) => _errorOcurredEventManager.HandleEvent(this, message, nameof(ErrorOcurred)); +void OnErrorOcurred(string message) => _errorOcurredEventManager.HandleEvent(this, message, nameof(ErrorOcurred)); ``` #### Using `Action<T>` @@ -249,7 +252,7 @@ public event Action<string> ActionEvent remove => _weakActionEventManager.RemoveEventHandler(value); } -public void OnActionEvent(string message) => _weakActionEventManager.HandleEvent(message, nameof(ActionEvent)); +void OnActionEvent(string message) => _weakActionEventManager.HandleEvent(message, nameof(ActionEvent)); ``` ## AsyncAwaitBestPractices.MVVM