Menunggu Proses Keluar Secara Asynchronous
Dalam banyak aplikasi, adalah penting untuk menunggu proses untuk keluar sebelum meneruskan lebih lanjut. Walau bagaimanapun, menggunakan Process.WaitForExit() boleh menyebabkan antara muka pengguna grafik (GUI) menjadi beku. Untuk mengelakkan isu ini, penyelesaian berasaskan acara atau berasaskan benang diperlukan.
Pendekatan Berasaskan Peristiwa
Setakat .NET 4.0/C# 5, async corak menyediakan cara yang lebih elegan untuk mewakili proses menunggu. Kaedah WaitForExitAsync() boleh ditambah pada kelas Proses, membolehkan aplikasi menunggu secara tak segerak untuk proses keluar:
public static Task WaitForExitAsync(this Process process, CancellationToken cancellationToken = default(CancellationToken))
Di dalam kaedah:
Penggunaan
Untuk menggunakan kaedah WaitForExitAsync():
public async void Test() { var process = new Process("processName"); process.Start(); await process.WaitForExitAsync(); // Do some fun stuff here... }
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Menunggu Proses Keluar secara Asynchronous dalam C# Tanpa Membekukan GUI?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!