gpt4 book ai didi

c# - 在定时器的回调方法中抛出异常

转载 作者:IT王子 更新时间:2023-10-29 04:08:10 25 4
gpt4 key购买 nike

我无法在任何地方找到这个问题的答案......

System.Threading.Timer 的回调方法(或 System.Timers.Timer 的事件处理程序)中抛出的异常会发生什么情况。异常是传播到创建计时器的线程还是异常丢失?

在计时器的回调函数中抛出异常有什么副作用?

向计时器的创建线程发出信号表明工作线程(回调方法)中的异常已被抛出的正确方法是什么?

感谢您的宝贵时间。

最佳答案

异常不会传递回调用线程。如果需要,您可以添加一个 catch block 并想出一种方法来向调用线程发出信号。如果调用线程是 WinForms 或 WPF UI 线程,您可以使用 SynchronizationContext类传递对 UI 线程的调用。否则,您可以使用线程安全队列(或同步锁)并在另一个线程中定期检查它。

System.Timers.Timer 将默默地吞下异常并继续计时器(尽管这在框架的 future 版本中可能会发生变化); System.Threading.Timer 将终止程序。

关于c# - 在定时器的回调方法中抛出异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1718598/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com