|
using System.ComponentModel;
using System.Windows.Threading;
using System;
namespace ReflectionStudio.Core.Helpers
{
/// <summary>
/// WorkerBase help in the management of a BackgroundWorker
/// </summary>
public class WorkerBase
{
#region ----------------------INTERNALS----------------------
/// <summary>
/// The thread we are running in, but it can be null
/// </summary>
public BackgroundWorker Worker
{
get;
set;
}
/// <summary>
/// Thread event arg associated to the background worker, can be null
/// </summary>
public DoWorkEventArgs Event
{
get;
set;
}
/// <summary>
/// Thread result as boolean stored in the event
/// </summary>
public bool Result
{
get { if (Event != null) return (bool)Event.Result; else return false; }
set { Event.Result = value; }
}
#endregion
#region ----------------------CONSTRUCTORS----------------------
/// <summary>
/// Contructor
/// </summary>
/// <param name="worker"></param>
/// <param name="e"></param>
public WorkerBase(BackgroundWorker worker, DoWorkEventArgs e)
{
Worker = worker;
Event = e;
//init to ok
Event.Result = true;
}
#endregion
#region ----------------------HELPERS----------------------
/// <summary>
/// Send progress mesage through the background worker
/// </summary>
/// <param name="message"></param>
protected void Progress(string message)
{
if (Worker != null)
Worker.ReportProgress(0, message);
//Thread.Sleep(10);
}
/// <summary>
/// Check if cancelling has been asked
/// </summary>
/// <returns></returns>
protected bool CancelPending()
{
if (Worker == null)
return false;
if (Worker.CancellationPending)
{
Event.Cancel = true;
return true;
}
else return false;
}
#endregion
}
}
|
By viewing downloads associated with this article you agree to the Terms of Service and the article's licence.
If a file you wish to view isn't highlighted, and is a text file (not binary), please
let us know and we'll add colourisation support for it.
WPF and MVVM fan, I practice C # in all its forms from the beginning of the NET Framework without mentioning C ++ / MFC and other software packages such as databases, ASP, WCF, Web & Windows services, Application, and now Core and UWP.
In my wasted hours, I am guilty of having fathered C.B.R. and its cousins C.B.R. for WinRT and UWP on the Windows store.
But apart from that, I am a great handyman ... the house, a rocket stove to heat the jacuzzi and the last one: a wood oven for pizza, bread, and everything that goes inside
https://guillaumewaser.wordpress.com/
https://fouretcompagnie.wordpress.com/