내 프로젝트 중 하나에서 '작은'문제가 있습니다. 나는 그렇게 그들가 디스크에 기록하지 않으비동기 적으로 어셈블리 호출
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
예, 두 어셈블리가 잘 실행 할 둘 다 나타나지만 하나를 닫으면 세 개의 앱이 닫힙니다 (이 앱과 byte()에서로드 된 앱).
그래서 나는 그들을 따로 달리게하는 방법을 묻습니다.
이 질문은 거의 의미가 없습니다 제거합니다. 그렇지 않으면 스레드가 작업을 완료 할 수 있다는 보장이 거의 없습니다. Main() 메서드가 완료되면 프로그램이 종료됩니다. IsBackground 속성을 True로 설정 한 이후 스레드가 수행중인 작업과 관계없이 CLR이 중단하도록 허용합니다. –
내 오류에 대해 알았습니다. 정말 고마워요! – Devintelo