2013-04-28 2 views
-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 

Да, две сборки работает нормально, появляются оба, но когда я закрываю один, три приложения закрываются (этот и те, которые были загружены из байта()).

Итак, я спрашиваю, как их запускать отдельно.

+1

Этот вопрос имеет мало смысла, вы не можете «закрыть» сборка. В противном случае нет никакой гарантии, что нить сможет завершить свою работу. Как только метод Main() будет завершен, программа завершится. Независимо от того, что делает поток, поскольку вы устанавливаете его свойство IsBackground на True, позволяя CLR прервать его. –

+0

Знал о моей ошибке, большое спасибо! – Devintelo

ответ

0

Фоновые потоки прерываются, когда нет потоков переднего плана.

Try: trd.IsBackground = False

Или еще лучше: Просто удалите строку :)

+0

О, спасибо, парень! Ты действительно помог мне, еще раз спасибо! – Devintelo

Смежные вопросы