には、次のC#コードを考えてみましょう:vb.netでBackgroundWorkerを使用してラムダ式でコードをラップする方法は?
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を直接Private WithEvents Worker As BackgroundWorker
を言うと、以下のように明示的にDoWork
イベントを処理することにより、セットアップにあなたが持っている労働者をそのようDoWork
を参照し、許可されません知っている:
Private Sub Worker_DoWork(
ByVal sender As Object,
ByVal e As DoWorkEventArgs) _
Handles Worker.DoWork
...
End Sub
しかし、私はVB.netのC#の例からSomeMethod
のようなメソッドを実装できるようにしたいと思います。これは、Backgroundworkerを別のクラス(これは依存性注入と単体テストのためにやりたいことです)にラップすることを意味します。私はシンプルでエレガントな方法でそれについてどうやって行くのか分かりません。
@Svenについては、.NET 4のヒントはあまり正確ではありません。これは必須の.NET 4ではなく、.NET 4/Visual Studio 2010に同梱されているVB.NETコンパイラの最新バージョン(バージョン10)です。ただし、コンパイラによって生成された*コードは.NETでも実行する必要があります2.0アプリケーション。 – stakx
はい、私はそれを変えるために私の答えを編集したのは知っています。 :)また、私は最初に受け入れられましたか?人生は公正ではありません。 :P – Sven
@スヴェン、私はあなたが最初であることを認識していませんでした(どちらも答えたx分前です)。私はあなたに+1を与えました。 – Matt