Are c# timers naturally multithreaded?

后端 未结 3 2013
时光说笑
时光说笑 2020-12-19 22:21

If I have two system timers firing events at 10 and 20s respectively, are the calls to the event functions multithreaded? In the scenario below, I have timers that fire even

3条回答
  •  佛祖请我去吃肉
    2020-12-19 23:12

    From the System.Timers.Timer documentation:

    The server-based Timer is designed for use with worker threads in a multithreaded environment. Server timers can move among threads to handle the raised Elapsed event, resulting in more accuracy than Windows timers in raising the event on time.

    So yes, it is.

    Futhermore, from the System.Timers.Timer.SynchronizingObject property documentation:

    When SynchronizingObject is null, the method that handles the Elapsed event is called on a thread from the system-thread pool. For more information on system-thread pools, see ThreadPool.

    So the events are raised on thread pool threads unless SynchronizingObject is set.

提交回复
热议问题