这是我的主要方法:
public static void main(){
var timer1=createDebounceTimer("TIMER1");
var timer2=createDebounceTimer("TIMER2");
}
这是我的定时器构建代码:
private System.Timers.Timer createDebounceTimer(string threadName){
var debounceTimer = new System.Timers.Timer(debounce * 1000);
debounceTimer.Elapsed += new ElapsedEventHandler(OnTimedEvent);
debounceTimer.AutoReset = false;
//here I need to name the timer with threadName var
return debounceTimer;
}
这是一个简单的过去事件:
private void OnTimedEvent(object source, ElapsedEventArgs e)
log.Info("My log system need the name of my thread");
}
问题1:
如何命名计时器的线程?出于日志记录的目的,我需要这个,我想详细地命名Elapsed事件的线程。
问题2:
我能确定在创建多个定时器的情况下,每个定时器会有一个专用线程吗?
对此也很好奇。不确定这是怎么回事,但为什么不做这样的事情:
private void OnTimedEvent(object source, ElapsedEventArgs e)
System.Threading.Thread.CurrentThread.Name = "CustomThreadName-" + System.Threading.Thread.CurrentThread.ManagedThreadId;
log.Info("My log system need the name of my thread");
}
当在conversionPattern中使用"%thread"时,Log4Net将在日志中忠实地显示"CustomThreadName-…"。ManagedThreadId至少会使您在日志中具有唯一性。