1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61
|
public class BackgroundJob
{
//Exemple d'une fonction que je souhaiterais éxécuter en arrière plan
public delegate void GetAllCollections(SCCMSite oCurrentSite);
private BackgroundWorker _backgroundWorker;
private GetAllCollections _thisFunction;
public BackgroundJob(GetAllCollections newFunction)
{
//Création d'un backgroundWorker
_thisFunction = newFunction;
_backgroundWorker = new BackgroundWorker();
_backgroundWorker.WorkerReportsProgress = true;
_backgroundWorker.DoWork += new DoWorkEventHandler(backgroundWorker_DoWork);
_backgroundWorker.RunWorkerCompleted += new RunWorkerCompletedEventHandler(backgroundWorker_RunWorkerCompleted);
_backgroundWorker.ProgressChanged += new ProgressChangedEventHandler(backgroundWorker_ProgressChanged);
}
public void Start()
{
_backgroundWorker.RunWorkerAsync();
//newLoading = new LoadingForm();
//newLoading.ShowDialog();
}
/// <summary>
/// Modification de la Progression
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
void backgroundWorker_ProgressChanged(object sender, ProgressChangedEventArgs e)
{
}
/// <summary>
/// Chargement terminé on lance la fenêtre principal
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
void backgroundWorker_RunWorkerCompleted(object sender, RunWorkerCompletedEventArgs e)
{
}
/// <summary>
/// Chargement asynchrone de l'application
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
void backgroundWorker_DoWork(object sender, DoWorkEventArgs e)
{
if (_thisFunction != null)
_thisFunction((SCCMSite)e.Argument);
}
} |
Partager