C# 对后台工作程序使用语句
我已经查看了几个backgroundworkers的示例,并且我遇到了与此类似的代码C# 对后台工作程序使用语句,c#,backgroundworker,using,C#,Backgroundworker,Using,我已经查看了几个backgroundworkers的示例,并且我遇到了与此类似的代码 public class MyClass { public MyClass() { using(BackgroundWorker _Worker = new BackgroundWorker { WorkerReportsProgress = true}) { _Worker.DoWork += (s, args) => { ...
public class MyClass
{
public MyClass()
{
using(BackgroundWorker _Worker = new BackgroundWorker { WorkerReportsProgress = true})
{
_Worker.DoWork += (s, args) =>
{
...
};
}
_Worker.RunWorkerAsync();
}
}
我没有在我的代码中像这样使用“using”语句。在使用CodeRush试用版时,我遇到了类似的情况,这让我回到这段代码,并质疑我是否应该这样做。请帮助我了解这是否/为什么是最佳做法。谢谢。使用
这样的关键字只需为您处理dispose。如果没有它,您将不断地编写try/catch/finally
块,以确保实现IDisposable的对象被正确地处理
还请注意,如果有多个对象需要处理,则可以在using语句中放置多个声明:
using (Font font3 = new Font("Arial", 10.0f),
font4 = new Font("Arial", 10.0f))
{
// Use font3 and font4.
}
下面是它的作用域。使用语句定义了一个作用域,对象将在该作用域之外进行处理。因此,这只是一个自动处理资源的约定。从
using语句允许程序员指定
使用资源应该释放它们。提供给用户的对象
语句必须实现IDisposable接口。此接口
提供Dispose方法,该方法应释放对象的
资源
这在您的场景中是完全可以接受的。using语句代替了用try/catch块包围代码。但不是所有的东西都能使用using语句;只有实现Dispose()的对象才可以。实际上不需要处置BackgroundWorker
,请参阅。因此,没有必要使用using
子句