2009-08-31 3 views
1

vb2005のサブ関数または関数から引数を配列として取得できますか?vb2005のサブ関数または関数から引数を配列として取得することはできますか?

+0

ParamArrayを確認してください。 – pyon

+0

なぜあなたはこれをしたいですか?私はこのような質問を聞くと、私は彼らがすでに間違ったアプローチに基づいていることを心配しています... – bobbymcr

+0

なぜ簡単です、私はマルチスレッドクラスを使用して、私は "トップ"スレッド、私のイベントハンドラはスレッド内で正常に動作するので、実際にフォームのスレッドで実行している場合はイベントハンドラをチェックし、そうでない場合はフォームのスレッドでデリゲートを作成してイベントハンドラを再実行します – Jim

答えて

0

イベントハンドラを従来の.NET方式で使用できます。

次に、カプセル化クラス自体への参照を渡してすべての値を渡します。

+0

は、それは "何もない"と定義されて表示されます。 私に言い換えれば、私の引数の値をサブ関数内または関数内から配列として得る方法 – Jim

0

VS 2010では実行できますが、2005では実行できません。これはDLRまたは動的言語ランタイムを介して追加される機能です。もしメンバー署名を制御している場合、あなたははるかにEventArgsオブジェクト(またはそのサブクラス)の間を通過する方法と同様に、単一のクラスにすべてのパラメータをカプセル化することができ

Dim params() As System.Reflection.ParameterInfo = myObject.GetType().GetMethod("myObjectMethodName").GetParameters() 
0

:リフレクションを使用して

1

これを解決しましたか?私はあなたが何を意味するのかについてはあまり確信していませんが、あなたのOPに関するあなたのコメントから、スレッドを同期させて呼び出しをスレッドセーフにするつもりですか?

Private WithEvents theThread As New threadedClass 
Private Delegate Sub threaded_method_delegate(ByVal sender As Object, ByVal var1 As Integer, ByVal var2 As String) 

Sub threaded_method(ByVal sender As Object, ByVal var1 As Integer, ByVal var2 As String) Handles theThread.threaded_method 
    If Me.InvokeRequired Then 
     ' invoke this method on the same thread as 'Me' 
     Dim d As New threaded_method_delegate(AddressOf threaded_method) 
     d.Invoke(sender, var1, var2) 
    Else 
     ' this method is now running on the same thread 
     ' do stuff here 
    End If 
End Sub 
関連する問題