2009-05-19 7 views
1

私は新しいスレッドを作成し、複数のパラメータとレポートを返す代理人を送信しようとしています。VB9複数のパラメータを持つ新しいスレッド

VB8では、新しいクラス/構造体またはデリゲートを導入する必要があるため、これは常に嫌です。

VB9でこれを行うには、より良い方法はありますか?

Dim Th As New Thread(AddressOf DoStuff) 
    Th.Start(param1, param2, AddressOf ReportStatus) 

私はLINQとラムダとの良好ではないので、私は誰かが私にこれを行うにはいくつかのクールなトリックを表示することがホッピングしています:

私はこのようなソリューションの何かを探しています。

答えて

2

あなたスレッドコンストラクタに無名関数を渡すことができます。

Dim Th = New Thread(Sub() DoStuff(param1, param2, AddressOf ReportStatus)) 

残念ながらVB9には無名サブルーチンは、(彼らはVB10になります - C#では、これはすでに動作するはずです)はありません。

+0

OK、私はVB9で可能だと思っていた。MSに恥をかぶった。 –

+0

MSの恥? MSに悪い名前を付けるのはあなたのような人々です。マイクロソフトでは、すべてのシングルリリースでVBおよびC#言語を一貫して改良しています。クレジットが得られないクレジットを与えていないため、あなたに恥をかく。 –

1

いいえ。 VB9の新機能はありません。

0

たぶん、あなたはすでにこの精通しているが、あなたのアプリケーションに応じて、ThreadPoolのを使用すると便利で簡単にすることができます。私はThreadPool.QueueUserWorkItemでパラメータを送信することについてはあまり知らないが、thisページはラムダ式と匿名のタイプを含む良いチュートリアルを提供するようだ。それはC#のですが、私はそれがVBに変換されると確信しています。

+0

実際に私は何か類似していることを試みていますが、そのページはC#(私はC#を読んで、Linqとlambad以外は変換できます:))。また、VB.NETにどれだけ適用できるかわからないよ。 –

関連する問題