Ciao ragazzi, sto scrivendo un programma che data una lista di file pdf li stampa. Per stamparli questi file li leggo da una lista ordinata alfabeticamente.

Poi per eseguire l'operazione di stampa uso questo codice:

codice:
For Each File In filesInDir
     If Mid(File, InStrRev(File, ".")) = ".pdf" Then

                            Dim PrcProcesso As New Process()
                            PrcProcesso.StartInfo.FileName = File
                            PrcProcesso.StartInfo.Verb = "PrintTo"
                            PrcProcesso.StartInfo.Arguments = Chr(34) + printer + Chr(34)
                            PrcProcesso.StartInfo.WindowStyle = ProcessWindowStyle.Hidden
                            PrcProcesso.StartInfo.UseShellExecute = True
                            PrcProcesso.StartInfo.CreateNoWindow = True
                            PrcProcesso.Start()
                            PrcProcesso.
                            
                            PrcProcesso.Close()
                        End If
next
Il tutto funziona, ma come detto può darsi che stampa prima il file che inizia con la lettera b che quello con la lettera a.

Mi sembra di aver capito che lo fa perchè riesce a mandare in stampa più velocemente un file che risulta essere piu piccolo di un altro, quindi se per esempio b é piu piccolo di a, nonostante venga aperto dopo va in stampa prima.
Sapete come fa, come faccio ad aspettare che il processo faccia tutto?


Se metto:
System.Threading.Thread.Sleep(2000)
prima di prcClose la cosa migliora, ma nn so quanto puo essere affidabile questa cosa!

Grazie