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.
61 lines
1.8 KiB
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);
|
|
}
|
|
}
|
|
}
|
|
}
|