Skip to content

Instantly share code, notes, and snippets.

Show Gist options
  • Save jrgcubano/78a818ba3d2a6387218a to your computer and use it in GitHub Desktop.
Save jrgcubano/78a818ba3d2a6387218a to your computer and use it in GitHub Desktop.
public class ViewModelWithBackgroundWorker {
private readonly BackgroundWorker worker;
public ViewModelWithBackgroundWorker() {
worker = new BackgroundWorker();
worker.DoWork += DoSomething;
worker.RunWorkerCompleted += WorkCompleted;
}
public string Message { get; set; }
public string Result { get; set; }
public void ExecuteAsync() {
Message = "Loading...";
worker.RunWorkerAsync();
}
private void DoSomething(object sender, DoWorkEventArgs e) {
e.Result = "Result";
}
private void WorkCompleted(object sender, RunWorkerCompletedEventArgs e) {
if (e.Error != null) {
HandleError(e.Error);
} else {
Message = "Completed";
Result = (string)e.Result;
}
}
private void HandleError(Exception exception) {
Message = exception.Message;
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment