Files
linker/linker.libs/TimerHelper.cs
2024-09-16 15:07:51 +08:00

55 lines
1.3 KiB
C#

using System;
using System.Threading.Tasks;
namespace linker.libs
{
public static class TimerHelper
{
public static void SetTimeout(Action action, int delayMs)
{
Task.Run(async () =>
{
await Task.Delay(delayMs);
action();
});
}
public static void SetInterval(Func<bool> action, int delayMs)
{
Task.Run(async () =>
{
while (true)
{
if (action() == false)
{
break;
}
await Task.Delay(delayMs).ConfigureAwait(false);
}
});
}
public static void SetInterval(Func<Task<bool>> action, int delayMs)
{
Task.Run(async () =>
{
while (true)
{
if (await action() == false)
{
break;
}
await Task.Delay(delayMs).ConfigureAwait(false);
}
});
}
public static void Async(Action action)
{
Task.Run(action);
}
public static void Async(Func<Task> action)
{
Task.Run(action);
}
}
}