c# - 停止构造函数中先前实例的计时器?
问题描述
我有一个foo
带有计时器的对象,一旦我重新分配,我想在其中停止foo
。为此,现在我执行以下操作
var foo=new MyClass();
//Do stuff....
if (foo!=null){foo.timer.stop();}
foo=new MyClass();
有没有办法可以在 MyClass 构造函数中添加这种逻辑,或者更优雅/更简单的方法来做到这一点?
public class MyClass
{
public DispatcherTimer timer = new DispatcherTimer();
public MyClass()
{
timer.Interval = TimeSpan.FromMilliseconds(100);
timer.Tick += Timer_Tick;
}
private void Timer_Tick(object sender, EventArgs e)
{
Console.WriteLine("I tick!!");
}
}
解决方案
您可以使用Finalizer,在这种情况下,它看起来像:
~MyClass {
timer.stop();
}
推荐阅读
- python-3.x - Python:搜索 tkinter 树视图记录。点击搜索后如何跳转到标签记录?
- java - 如何在 Java 中获取 JSONpath 的所有输出路径,以便用它们自己的函数替换现有值
- macos - Mac OS 终端找不到命令
- node.js - 节点js控制器如何保存对象数组的数据
- jq - 将一个对象合并到 json 文件的另一个对象中
- amazon-web-services - AWS API-Gateway Cognito Authorizer 不使用有效的令牌
- python - 如何在一个散点图的自己的列上绘制多个数据集
- python-3.x - 将循环输出保存到多个 Excel 工作表
- javascript - 了解 JavaScript 中的闭包范围
- asp.net-mvc-5 - 使用 LDAP 作为数据存储验证 ASP.Net Identity 2 中的密码