Рассмотрим следующий код C #:
private void SomeMethod()
{
IsBusy = true;
var bg = new BackgroundWorker();
bg.DoWork += (sender, e) =>
{
//do some work
};
bg.RunWorkerCompleted += (sender, e) =>
{
IsBusy = false;
};
bg.RunWorkerAsync();
}
Я знаю, что VB.NET не разрешит прямую ссылку на DoWork
подобным образом, и вы должны настроить работника, сказав Private WithEvents Worker As BackgroundWorker
и явно обработав событие DoWork
следующим образом:
Private Sub Worker_DoWork(
ByVal sender As Object,
ByVal e As DoWorkEventArgs) _
Handles Worker.DoWork
...
End Sub
Однако я хотел бы иметь возможность реализовать метод, подобный SomeMethod
из примера C # в VB.net. Скорее всего, это означает обертывание Backgroundworker в другом классе (что я в любом случае хочу сделать для внедрения зависимостей и модульного тестирования). Я просто не уверен, как это сделать простым и элегантным способом.