У меня есть небольшая проблема в одном из моих проектов. Я должен вызвать 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
Да, две сборки работает нормально, появляются оба, но когда я закрываю один, три приложения закрываются (этот и те, которые были загружены из байта()).
Итак, я спрашиваю, как их запускать отдельно.
Этот вопрос имеет мало смысла, вы не можете «закрыть» сборка. В противном случае нет никакой гарантии, что нить сможет завершить свою работу. Как только метод Main() будет завершен, программа завершится. Независимо от того, что делает поток, поскольку вы устанавливаете его свойство IsBackground на True, позволяя CLR прервать его. –
Знал о моей ошибке, большое спасибо! – Devintelo