47 lines
1.1 KiB
C#
47 lines
1.1 KiB
C#
using System;
|
|
using System.Collections.Generic;
|
|
using System.Linq;
|
|
using System.Text;
|
|
using System.Threading;
|
|
|
|
namespace ResourceViewer
|
|
{
|
|
/// <summary>
|
|
/// Class to allow any action to be delayed Elapsed seconds
|
|
/// Currently used with the filter list textbox typing
|
|
/// </summary>
|
|
public class Moderator
|
|
{
|
|
private DateTime _lastUpdate;
|
|
private bool _isAlive;
|
|
|
|
public void Trigger()
|
|
{
|
|
_lastUpdate = DateTime.Now;
|
|
if (!_isAlive)
|
|
{
|
|
_isAlive = true;
|
|
ThreadPool.QueueUserWorkItem(WaitAndTrigger);
|
|
}
|
|
}
|
|
|
|
private void WaitAndTrigger(object ignored)
|
|
{
|
|
while (DateTime.Now < _lastUpdate.AddSeconds(ElapsedTime))
|
|
{
|
|
Thread.Sleep(500);
|
|
}
|
|
_isAlive = false;
|
|
var done = Done;
|
|
if (done != null)
|
|
{
|
|
done(this, EventArgs.Empty);
|
|
}
|
|
}
|
|
|
|
public event EventHandler Done;
|
|
public int ElapsedTime = 2;
|
|
}
|
|
|
|
|
|
}
|