Differenza tra il sonno di inizio e il processo di attesa

Differenza tra il sonno di inizio e il processo di attesa
Negli script di PowerShell, ci sono numerosi metodi per ottimizzare gli script. Ad esempio, i metodi di pausa PowerShell hanno lo scopo di mettere in pausa lo script per un tempo specifico o per attendere il terminazione di qualche altro processo prima di continuare l'esecuzione. Il sonno di inizio e il processo di attesa appartengono alla categoria Metodi di pausa PowerShell.

Il sonno di avvio mette in pausa l'esecuzione per un tempo specificato. D'altra parte, l'attesa che attesa che finisca un processo e quindi continua l'esecuzione.

Considerando la loro importanza, abbiamo compilato questa guida per differenziare i cmdlet di avvio e processo di attesa.

Differenza tra il sonno di inizio e il processo di attesa

IL Wait-process cmdlet attende che un processo si fermi prima di accettare un altro processo, mentre il Il sonno di inizio cmdlet viene utilizzato per sospendere o mettere in pausa lo script per un determinato periodo. Per una migliore comprensione, abbiamo dimostrato esplicitamente l'uso del sonno di inizio e del processo di attesa.

Come funziona il sonno di inizio in PowerShell?

Arriva un momento in cui dobbiamo mettere in pausa o sospendere lo script in PowerShell per un periodo di tempo specifico. Potrebbero esserci molte ragioni per mettere in pausa l'esecuzione dello script. Ad esempio, se si desidera estendere il tempo di esecuzione dello script o si desidera limitare il tempo per prendere input dall'utente.

Sintassi

> Avvio del sonno <-Seconds> <-Milliseconds> <-Parameters>

Nella sintassi:

  • I secondi e i -millisecondi si riferiscono alle unità del tempo. I secondi dovrebbero essere in doppio tipo di dati mentre i millisecondi devono essere un valore intero.
  • Indica l'insieme di parametri comuni applicabili con tutti i cmdlet PowerShell. I parametri comunemente usati includono, Debug, Errore, Errorvariable, Informazione, Informazionivariabili eccetera.

Esempio: mettere in pausa lo script per un tempo specifico
Per applicare il sonno iniziale, abbiamo creato uno script di esempio. Il sonno di avvio viene utilizzato tra due cmdlet Write-Host nel codice di esempio seguente. L'aspirante attesa di 5 secondi dopo il primo host di scrittura e prima della seconda scrittura:

Write-host "Utilizzo del sonno iniziale"
Start -Sleep -Seconds 5
Write-host "Il codice dopo il sonno di avvio"

Eseguiamo lo script:

L'output mostra che la riga dopo il cmdlet di avvio viene eseguito dopo 5 secondi di attesa.

Come funziona il processo di attesa in PowerShell?

Il cmdlet di attesa attende che un processo si fermi prima di andare verso un'ulteriore esecuzione dello script. Per impostazione predefinita, il processo di attesa attenderà un tempo indefinito. Tuttavia, puoi anche limitare il tempo per l'attesa. La sintassi del processo di attesa è fornita di seguito:

Sintassi

> Wait-process <-Name> <-Time> <-Parameters>

Nella sintassi:

  • IL -Nome Il parametro si riferisce al nome del processo.
  • IL -Tempo Il parametro viene utilizzato per limitare il tempo di attesa.
  • IL -Parametri denotare alcuni dei parametri comunemente usati come debug, errore, ecc.

Comprendiamolo più chiaramente usando l'esempio.

Esempio: attendere un processo
Come sappiamo, il cmdlet di attesa attende un processo e quindi accetta un altro processo. Nell'esempio seguente, il processo di attesa viene applicato su HP.MyHP processi. Qui, il cmdlet di attesa attenderà il HP.MyHP processo prima di continuare l'ulteriore esecuzione:

Write-host "usando il processo di attesa!"
Wait -process -processname hp.MyHP
Write-host "The HP.Il processo MYHP è stato fermato!"

Ora, esegui lo script:

Osserverai che il cursore continuerà a ticchettare e non continuerà l'ulteriore esecuzione se il processo non viene interrotto.

È inoltre possibile specificare il tempo nel processo di attesa e se il processo non viene interrotto entro il limite di tempo, PowerShell lancerà un errore. Sperimentiamolo tramite il seguente esempio, in cui abbiamo limitato i tempi di attesa a 5 secondi:

Write-host "in attesa di un processo per fermare!"
Wait -process -processname hp.MyHP -Timeout 5

Eseguiamo lo script e guardiamo l'output:

Si osserva che dopo aver aspettato 5 secondi, PowerShell ha lanciato un errore che HP.MyHP non si è fermato al tempo specificato.

Punto bonus: La tabella seguente considera quattro fattori principali per distinguere tra il procedimento di attesa e il cmdlet per il sonno di avvio.

Fattori Wait-process Il sonno di inizio
Scopo Metti in pausa l'esecuzione dello script. Metti in pausa l'esecuzione dello script.
Ambito di applicabilità Viene applicato per aspettare solo i processi. Può essere applicato per sospendere la sessione/attività in qualsiasi momento. La portata del sonno di avvio è più ampio del processo di attesa.
Parametri comuni Supporta i parametri comuni. Supporta anche i parametri di Powershell comuni.
Unità temporale Solo secondi. Secondi o millisecondi.

Avresti capito meglio la differenza tra il processo di attesa e il sonno di inizio in PowerShell.

Conclusione

Il sonno di avvio sospende o mette in pausa la sceneggiatura per un certo periodo di tempo. Al contrario, il cmdlet di attesa attende un processo prima di accettare un altro processo. Entrambi i metodi sono usati come metodi in pausa in PowerShell. Hai imparato ad applicare il sonno di inizio e il cmdlet di attesa e anche la loro differenza. In primo luogo, questi cmdlet differiscono nell'ambito di applicabilità. Tuttavia, entrambi hanno lo stesso scopo: mettere in pausa l'esecuzione dello script di PowerShell.