You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
mchsamples-.net-core/ex_028_015_Action/GrosTravail.cs

61 lines
1.8 KiB

// ========================================================================
//
// Copyright (C) 2016-2017 MARC CHEVALDONNE
// marc.chevaldonne.free.fr
//
// Module : GrosTravail.cs
// Author : Marc Chevaldonné
// Creation date : 2016-10-08
//
// ========================================================================
using System;
namespace nsUtils
{
/// <summary>
/// une classe qui fait un gros travail ...
/// </summary>
public class ClasseQuiFaitDuGrosTravail
{
/// <summary>
/// instance de délégué
/// </summary>
private Action<int> InstanceProgression;
public void Initialiser(Action<int> prog)
{
InstanceProgression = prog;
}
public void Attacher(Action<int> prog)
{
InstanceProgression += prog;
}
public void Détacher(Action<int> prog)
{
InstanceProgression -= prog;
}
/// <summary>
/// méthode statique qui appelle les méthodes pointées par la méthode p de type délégué Progression toutes les demi-secondes
/// </summary>
/// <param name="p">instance de délégué de type délégué "Progression" qui sera appelée à chaque dem-seconde</param>
public void GrosTravail()
{
for (int i = 0; i <= 100; i++)
{
//exécution de l'instance de délégué
InstanceProgression?.Invoke(i);
//la ligne précédente est exactement équivalente à :
//if (InstanceProgression != null)
//{
// InstanceProgression(i);
//}
System.Threading.Thread.Sleep(50);
}
}
}
}