我的情况是这样的:序列只有最后的触发做它的工作C#
public Pocetna_forma()
{
InitializeComponent();
Timer_reset(new TimeSpan(19, 09, 00));
Timer_bolovanje(new TimeSpan(19, 09, 10));
Timer_godisnji(new TimeSpan(19, 09, 20));
Timer_godisnji_insert(new TimeSpan(19, 09, 30));
Timer_bolovanje_insert(new TimeSpan(19, 09, 40));
}
所以我放在我的主要形式构造开始我的触发条件,每个触发器是除了方法相同,它运行(基本上它们都是一样的,但具有不同的查询)。这是我的触发+方法的样子:
private void Timer_reset(TimeSpan alertTime)
{
DateTime current = DateTime.Now;
TimeSpan timeToGo = alertTime - current.TimeOfDay;
if (timeToGo < TimeSpan.Zero)
{
return;//time already passed
}
this.timer = new System.Threading.Timer(x =>
{
this.Trigger_brisanje();
}, null, timeToGo, Timeout.InfiniteTimeSpan);
}
private void Trigger_brisanje()
{
NpgsqlConnection conn = new NpgsqlConnection(Connectionstring);
conn.Open();
NpgsqlCommand upis_odlaska = new NpgsqlCommand("begin;update zaposlenici set polje_stanje=1,vrijeme3=null,vrijeme2=null;commit;", conn);
upis_odlaska.ExecuteReader();
conn.Close();
}
然后我试图移动呼叫触发方法一个接一个,结果发现,如果我把为前。 “Timer_godisnji_insert”“Timer_bolovanje_insert”后,只有“Timer_godisnji_insert”揭开序幕。新的触发器,所以我不知道错误在哪里,任何人?
您使用的每个方法的'timer'成员?如果是这样,您需要为每种方法使用单独的命名计时器成员。所以,'Timer_reset'用于'Timer_reset','timer_bolovanje'用于'Timer_bolovanje'等...你目前正在做的是重置每个函数中的'timer'字段... – GreatAndPowerfulOz