目标
有两种方法:Add() 和 Remove()。
Add() 方法每 X 秒发生一次,直到被用户停止;将对象添加到数据库;等待 N 秒;调用 Remove();
Remove() 方法由 Add() 方法调用,并删除由 Add() 方法添加的对象。
我的代码
static bool keepGoing = true;
static System.Timers.Timer AddMethodTimer= new System.Timers.Timer();
static System.Timers.Timer RemoveMethodTimer = new System.Timers.Timer();
private static void Execute()
{
if (!keepGoing)
{
AddMethodTimer.Stop();
RemoveMethodTimer.Stop();
}
else
{
AddMethodTimer.Interval = 30; // X = 30
RemoveMethodTimer.Interval = 5; // N = 5
AddMethodTimer.Elapsed += new ElapsedEventHandler(Add);
AddMethodTimer.Start();
Thread.Sleep(RemoveMethodTimer.Interval)//In this case, N=5;
RemoveMethodTimer.Elapsed += new ElapsedEventHandler(Remove);
}
}
private static void Add(object source, ElapseEventArgs e)
{
//add operation
}
private static void Remove(object source, ElapseEventArgs e)
{
//remove operation
}
用户只能更改“keepGoing”变量。如果它是假的,计时器应该停止。整个代码在更改时触发(我有一个处理它的帖子 IActionResult。它工作正常。当 keepGoing 更改时,它输入我提供的代码)。
注意:如果对象被插入到数据库并且用户使 keepGoing 为假,则不会执行 Remove()