PROCESSO ESPERAR OUTRO TERMINAR
Boa noite,
Pessoal, estou com uma dúvida meio [Ô]boba[Ô], eu tenho uma função que lista subpastas de um determinado diretório para compacta-lás, o problema é que as vezes ele não espera um arquivo terminar de ser compactado e passa já para o outro, ai um fica [Ô]atropelando[Ô] os outros e acaba dando erro. O que que eu posso fazer um processo esperar o outro terminar? Um detalhe é que o problema ocorre pq estou usando threads, para não congelar a tela.
Assim eu percorro as pastas que tem no listbox e chamo a rotina de compactação
Essa é a rotina de compactação
Pessoal, estou com uma dúvida meio [Ô]boba[Ô], eu tenho uma função que lista subpastas de um determinado diretório para compacta-lás, o problema é que as vezes ele não espera um arquivo terminar de ser compactado e passa já para o outro, ai um fica [Ô]atropelando[Ô] os outros e acaba dando erro. O que que eu posso fazer um processo esperar o outro terminar? Um detalhe é que o problema ocorre pq estou usando threads, para não congelar a tela.
Assim eu percorro as pastas que tem no listbox e chamo a rotina de compactação
Private Sub novalista()
For A = 0 To ListBox1.Items.Count - 1
IDArquivo = ListBox1.Items(A).ToString
Dim DR1 As Thread
DR1 = New Thread(AddressOf CompactaPasta)
DR1.Start()
Next
End Sub
Essa é a rotina de compactação
Private Sub CompactaPasta()
Arquivo = txtCaminhoImagens.Text & [Ô]\[Ô] & IDArquivo [ô]Monta o nome do arquivo para ser compactado
Dim zip As New Zip.ZipFile(txtCaminhoImagens.Text & [Ô]\[Ô] & IDArquivo & [Ô].zip[Ô])
zip.AddDirectory(Arquivo)
zip.Save()
Directory.Delete(Arquivo, True) [ô]Exclui a pasta após ela ser compactada.
End Sub
Altair só uma dúvida mas pq fazer isso em todos os diretório não pode apenas pegar o diretório principal ?
Já tentou dessa forma ?
http://support.microsoft.com/kb/305368/pt
Mas não é com thread.
Essa espera uma thread acabar para começar outra.
http://www.xtremevbtalk.com/showthread.php?t=159864
http://stackoverflow.com/questions/427335/how-to-wait-for-a-thread-to-finish-its-work
Já tentou dessa forma ?
http://support.microsoft.com/kb/305368/pt
Mas não é com thread.
Essa espera uma thread acabar para começar outra.
http://www.xtremevbtalk.com/showthread.php?t=159864
http://stackoverflow.com/questions/427335/how-to-wait-for-a-thread-to-finish-its-work
Citação:Altair só uma dúvida mas pq fazer isso em todos os diretório não pode apenas pegar o diretório principal ?
Então, esses pastas são criadas de forma dinâmica, então elas são criadas automaticamente, em vários momentos, e elas depois são enviadas via e-mail automaticamente, e todas tem que ir em e-mails separados.
Obrigado ALEVALE, agora eu não tenho como testar, mas assim que chegar em casa eu testo e posto o resultado.
Vlw.
Tópico encerrado , respostas não são mais permitidas