System.Timers.Timer vs System.Threading.Timer

后端 未结 8 2019
情书的邮戳
情书的邮戳 2020-11-22 07:08

I have been checking out some of the possible timers lately, and System.Threading.Timer and System.Timers.Timer are the ones that look needful to me (since they support thre

8条回答
  •  一个人的身影
    2020-11-22 08:08

    One important difference not mentioned above which might catch you out is that System.Timers.Timer silently swallows exceptions, whereas System.Threading.Timer doesn't.

    For example:

    var timer = new System.Timers.Timer { AutoReset = false };
    timer.Elapsed += (sender, args) =>
    {
        var z = 0;
        var i = 1 / z;
    };
    timer.Start();
    

    vs

    var timer = new System.Threading.Timer(x =>
    {
        var z = 0;
        var i = 1 / z;
    }, null, 0, Timeout.Infinite);
    

提交回复
热议问题