0

次のコードを参照してください。

Public Sub MyFunction1(ByVal CodeNo As Integer)

    Dim thread As New Thread(AddressOf MyFunction2)
    thread.Start()

End Sub

Private Sub MyFunction2(ByVal CodeNo As Integer)

    Debug.Print CodeNo

End Sub

にパラメータ値をどのように指定する必要がありますMyFunction2か?

コンパイラがこれをCodeNoに設定してコンパイルおよび実行できるのはなぜ0ですか?

4

1 に答える 1

1

Option Strict がオンになっていないため、コンパイル中です。Option Strict をオンにすると (IMO はほぼ常に実行する必要があります)、コンパイルされません。関数はThreadStartまたはと互換性がありませんParameterizedThreadStartObjectただし、パラメーターの型を に変更しても問題ありませんStart。関数に渡される値を指定できます。短いが完全な例:

Option Strict On

Imports System
Imports System.Threading

Public Class Test
    Public Shared Sub Main()
        Dim thread As New Thread(AddressOf Foo)
        thread.Start("hello")
        thread.Join()
    End Sub

    Private Shared Sub Foo(ByVal value As Object)
        Console.WriteLine(value)
    End Sub
End Class
于 2013-10-17T15:07:58.323 に答える