c# - 移除并重置静态对象
问题描述
我正在开发一个运行静态倒计时的应用程序。它需要是静态的,因为对象本身需要从不同的类中访问。但是在重做这段代码一段时间后:
timer.Stop();
timer.Dispose();
timer.Enabled = false;
timer = new System.Timers.Timer();
timer.Interval = 10;
timer.Elapsed += OnTimedEvent;
timer.Enabled = true;
我的应用程序变得非常缓慢。我相信也许我没有正确处理计时器对象,因此在 ram 中创建了许多对象。Evneutally,经过多次此代码,应用程序失败。
我是否在再次设置之前处理对象(使用 new 关键字)?还是我错过了一些重要的东西?
谢谢!
这是:
public static System.Timers.Timer timer;
那么这是静态的原因是因为在我的应用程序中的活动中还集成了一个回收器视图。当我在我的回收站视图中单击一个项目时,我需要从回收站视图之外但也在活动内部操作计时器。如果计时器不是公共静态的,我将不得不实例化该计时器的另一个对象,但这不会影响当前正在运行的计时器。所以也许我错了?有第三种选择吗?谢谢!
解决方案
推荐阅读
- python - 创建与大型数据集折叠的数据透视表的策略
- c - 使用函数传递 char[] 的双链表问题
- javascript - 如何将两个可观察项转换为另一个具有两个初始可观察对象的映射值的可观察对象?
- flutter - RenderBox 未布置:RenderFlex#4a60a 需要-油漆需要-合成-位-更新
- excel - 在 Web Scraping 时加载相关的下拉选项
- pandas - iloc 使用 scikit 学习随机森林分类器
- reactjs - 静态类属性声明中的错字反应/无错字
- c# - SaveFileDialog 过滤器问题和保存的文件扩展名
- javascript - 在Javascript中将recordSet对象转换为JSON数组
- c# - 如何将 Blazor C# 应用程序连接到 Azure SQL 数据库?苹果系统