galets 和 EkoostikMartin 已经回答了这个问题。让我using
更详细地解释 - 语句。在 c# 中的两个不同语句中使用了相同的关键字。我不会using <namesapce>;
在这里讨论。另一个可以在方法中使用。假设DispatchTimer
实现IDisposable
:
using (var timer = new DispatchTimer()) {
timer.Start();
// ... do something here.
}
和
{
var timer = new DispatchTimer();
try {
timer.Start();
// ... do something here.
} finally {
if (timer != null) {
((IDisposable)timer).Dispose();
}
}
}
它为您提供了一种安全的方式来关闭或终止您已打开或启动的内容。如果在 using 块中发生异常,或者如果 using 块被遗弃,则 Dispose 甚至会被调用return
。
更新
正如 EkoostikMartin 在他的评论中所说,DispatchTimer
没有实现IDisposable
,但您可以轻松创建它的一次性版本
public class DisposableDispatchTimer : DispatchTimer, IDisposable
{
public void Dispose()
{
Stop();
}
}