Bagikan melalui


Pekerjaan Latar Belakang

Cmdlet dapat melakukan tindakan mereka secara internal atau sebagai pekerjaan latar belakangWindows PowerShell. Ketika cmdlet berjalan sebagai pekerjaan latar belakang, pekerjaan dilakukan secara asinkron di utasnya sendiri terpisah dari utas alur yang digunakan cmdlet. Dari perspektif pengguna, ketika cmdlet berjalan sebagai pekerjaan latar belakang, prompt perintah segera kembali bahkan jika pekerjaan membutuhkan waktu yang lama untuk diselesaikan, dan pengguna dapat melanjutkan tanpa gangguan saat pekerjaan berjalan.

Pekerjaan Latar Belakang, Pekerjaan Anak, dan Repositori Pekerjaan

Objek pekerjaan yang dikembalikan oleh cmdlet yang mendukung pekerjaan latar belakang menentukan pekerjaan. (cmdlet Start-Job juga mengembalikan objek pekerjaan.) Nama pekerjaan, pengidentifikasi yang digunakan untuk menentukan pekerjaan, informasi status, dan pekerjaan anak disertakan dalam definisi ini. Pekerjaan tidak melakukan pekerjaan apa pun. Setiap pekerjaan latar belakang memiliki setidaknya satu pekerjaan anak karena pekerjaan anak melakukan pekerjaan aktual. Ketika Anda menjalankan cmdlet sehingga pekerjaan dilakukan sebagai pekerjaan latar belakang, cmdlet harus menambahkan pekerjaan dan pekerjaan anak ke repositori umum, yang disebut sebagai repositori pekerjaan .

Untuk informasi selengkapnya tentang bagaimana pekerjaan latar belakang ditangani di baris perintah, lihat yang berikut ini:

Menulis Cmdlet yang Berjalan sebagai Pekerjaan Latar Belakang

Untuk menulis cmdlet yang dapat dijalankan sebagai pekerjaan latar belakang, Anda harus menyelesaikan tugas berikut:

  • Tentukan parameter sakelar asJob sehingga pengguna dapat memutuskan apakah akan menjalankan cmdlet sebagai pekerjaan latar belakang.

  • Buat objek yang berasal dari kelas System.Management.Automation.Job. Objek ini dapat berupa objek pekerjaan kustom atau objek pekerjaan yang disediakan oleh Windows PowerShell, seperti objek System.Management.Automation.PSEventJob.

  • Dalam metode pemrosesan rekaman, tambahkan pernyataan if yang mendeteksi apakah cmdlet harus berjalan sebagai pekerjaan latar belakang.

  • Untuk objek pekerjaan kustom, terapkan kelas pekerjaan.

  • Mengembalikan objek yang sesuai, tergantung pada apakah cmdlet dijalankan sebagai pekerjaan latar belakang.

Untuk contoh kode, lihat Cara Mendukung Pekerjaan.

API berikut disediakan oleh Windows PowerShell untuk mengelola pekerjaan latar belakang.

System.Management.Automation.Job Mendapatkan objek pekerjaan kustom. Ini adalah kelas abstrak.

System.Management.Automation.JobRepository Mengelola dan menyediakan informasi tentang pekerjaan latar belakang aktif saat ini.

System.Management.Automation.JobState Menentukan status pekerjaan latar belakang. Status termasuk Dimulai, Berjalan, dan Dihentikan.

System.Management.Automation.JobStateInfo Menyediakan informasi tentang status pekerjaan latar belakang dan, jika perubahan status terakhir disebabkan oleh kesalahan, alasan pekerjaan memasuki statusnya saat ini.

System.Management.Automation.JobStateEventArgs Menyediakan argumen untuk peristiwa yang dimunculkan saat pekerjaan latar belakang berubah status.

Cmdlet Pekerjaan Windows PowerShell

Cmdlet berikut disediakan oleh Windows PowerShell untuk mengelola pekerjaan latar belakang.

Dapatkan-Pekerjaan

Mendapatkan pekerjaan latar belakang Windows PowerShell yang berjalan dalam sesi saat ini.

Terima-Pekerjaan

Mendapatkan hasil pekerjaan latar belakang Windows PowerShell dalam sesi saat ini.

Hapus-Pekerjaan

Menghapus pekerjaan latar belakang Windows PowerShell.

Mulai-Pekerjaan

Memulai pekerjaan latar belakang Windows PowerShell.

Hentikan-Pekerjaan

Menghentikan pekerjaan latar belakang Windows PowerShell.

Wait-Job

Menekan prompt perintah hingga satu atau semua pekerjaan latar belakang Windows PowerShell yang berjalan dalam sesi selesai.

Lihat Juga

Menulis Cmdlet Windows PowerShell