diff --git a/Model/ITask.cs b/Model/ITask.cs new file mode 100644 index 0000000..408cda9 --- /dev/null +++ b/Model/ITask.cs @@ -0,0 +1,13 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace Model +{ + public interface ITask + { + void exec(); + } +} diff --git a/Model/Task.cs b/Model/Task.cs index 30e4e39..4f31874 100644 --- a/Model/Task.cs +++ b/Model/Task.cs @@ -1,17 +1,32 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading.Tasks; - -namespace Model +namespace Model { - public delegate T callback(List param); - public class Task + public delegate T callback(params object[] param); + public class Task : ITask { - private List param; + public readonly object[] Param; + public readonly callback Callback; private int tickRemaining; - private callback callback; + public Task(object[] param, callback callback, int numberTicks) + { + tickRemaining = numberTicks; + Callback = callback; + Param = param; + } + + public void exec() + { + if (tickRemaining == 0) + { + Callback.Invoke(Param); + } + else + { + tickRemaining--; + } + + } + + public int TickRemaining { get => tickRemaining; } } }