我应该在构造函数中启动BackgroundWorker子类的RunWorkerAsync方法吗?

时间:2013-09-13 14:31:31

标签: vb.net backgroundworker

我有一个Background worker的子类。在New块中注册所有参数后,我想启动RunWorkerAsync方法。这会不会给我带来麻烦和/或这是不好的做法?

        Public Sub New(ByVal theNum As Integer)
            _theNum = theNum
            Me.RunWorkerAsync()  ' automatically start running; will this bite me?
        End Sub

在这个子类的情况下,只要工人被实例化,我就知道我想立即开始工作。

1 个答案:

答案 0 :(得分:2)

从设计的角度来看,我建议保持构造函数尽可能不做任何实际工作。原因是因为构造函数中的工作可能导致意外行为和一般错误。它还可以使您的代码不那么灵活,并且更难以进行单元测试。但这些建议适用于构造函数中完成的所有工作。它们并不专门适用于背景工作者。就像任何格言一样,有时会出现例外规则。

从技术角度来看,只要在调用设计器插入的InitializeComponent方法后调用它,那么就不应该有任何负面影响。