-1

プロジェクトの 1 つに「小さな」問題があります。に格納されている2つのアセンブリを呼び出す必要があります

Byte()

それらをディスクに書きたくないので、そうするために、私はそうします

        Sub Main()                
                Dim trd As New System.Threading.Thread(AddressOf LodFile1)
                trd.IsBackground = True
                trd.Start()
                Dim resourceManager As New Resources.ResourceManager("Files", System.Reflection.Assembly.GetExecutingAssembly)
                Dim [Bin2] As Byte() = DirectCast(resourceManager.GetObject("File2"), Byte())
                resourceManager.ReleaseAllResources()
                Dim a2 = System.Reflection.Assembly.Load([Bin2])
                Dim m2 As System.Reflection.MethodInfo = a2.EntryPoint
                Dim o2 As Object = a2.CreateInstance(m2.Name)
                m2.Invoke(o2, New Object() {New String() {"1"}})
        End Sub
        Sub LodFile1()
                Dim resourceManager As New Resources.ResourceManager("Files", System.Reflection.Assembly.GetExecutingAssembly)
                Dim [Bin1] As Byte() = DirectCast(resourceManager.GetObject("File1"), Byte())
                resourceManager.ReleaseAllResources()
                Dim a1 = System.Reflection.Assembly.Load([Bin1])
                Dim m1 As System.Reflection.MethodInfo = a1.EntryPoint
                Dim o1 As Object = a1.CreateInstance(m1.Name)
                m1.Invoke(o1, New Object() {New String() {"1"}})
        End Sub

はい、2 つのアセンブリは正常に動作し、両方とも表示されますが、1 つを閉じると 3 つのアプリが閉じます (これと、byte() から読み込まれたもの)。

それで、私はそれらを別々に実行する方法について尋ねています。

4

1 に答える 1

0

フォアグラウンド スレッドが実行されていない場合、バックグラウンド スレッドは中止されます。

試す:trd.IsBackground = False

またはさらに良い:行を削除するだけです:)

于 2013-04-28T22:13:26.213 に答える