簡體   English   中英

C#System.Timers.Timer如何命名其線程

[英]C# System.Timers.Timer how to name its thread

這是我的主要方法:

   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將至少為您提供日志的唯一性。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM