150
Chương 4: Tiểu trình, tiến trình, và sự đồng bộ
Sử dụng đối tượng
System.Diagnostics.ProcessStartInfo
để chỉ định các chi tiết
cho ứng dụng cần chạy. Sau đó, tạo đối tượng
System.Diagnostics.Process
để mô
tả tiến trình mới, gán đối tượng
ProcessStartInfo
cho thuộc tính
StartInfo
của
đối tượng
Process
, và rồi khởi chạy ứng dụng bằng cách gọi
Process.Start
.
Lớp
Process
cung cấp một dạng biểu diễn được-quản-lý cho một tiến trình của hệ điều hành
và cung cấp một cơ chế đơn giản mà thông qua đó, bạn có thể thực thi cả ứng dụng được-
quản-lý lẫn không-được-quản-lý. Lớp
Process
hiện thực bốn phiên bản nạp chồng cho
phương thức
Start
(bạn có thể sử dụng phương thức này để khởi chạy một tiến trình mới).
Hai trong số này là các phương thức tĩnh, cho phép bạn chỉ định tên và các đối số cho tiến
trình mới. Ví dụ, hai lệnh dưới đây đều thực thi Notepad trong một tiến trình mới:
// Thực thi notepad.exe, không có đối số.
Process.Start("notepad.exe");
// Thực thi notepad.exe, tên file cần mở là đối số.
Process.Start("notepad.exe", "SomeFile.txt");
Hai dạng khác của phương thức
Start
yêu cầu bạn tạo đối tượng
ProcessStartInfo
được cấu
hình với các chi tiết của tiến trình cần chạy; việc sử dụng đối tượng
ProcessStartInfo
cung
cấp một cơ chế điều khiển tốt hơn trên các hành vi và cấu hình của tiến trình mới. Bảng 4.3
tóm tắt một vài thuộc tính thông dụng của lớp
ProcessStartInfo
.
[
Bảng 4.3 Các thuộc tính của lớp ProcessStartInfo
Thuộc tính
Mô tả
Arguments
Các đối số dùng để truyền cho tiến trình mới.
ErrorDialog
Nếu
Process.Start
không thể khởi chạy tiến trình đã được chỉ định,
nó sẽ ném ngoại lệ
System.ComponentModel.Win32Exception
. Nếu
ErrorDialog
là
true
,
Start
sẽ hiển thị một thông báo lỗi trước khi
ném ngoại lệ.
FileName
Tên của ứng dụng. Bạn cũng có thể chỉ định bất kỳ kiểu file nào mà
bạn đã cấu hình ứng dụng kết giao với nó. Ví dụ, nếu bạn chỉ định
một file với phần mở rộng là .doc hay .xls, Microsoft Word hay
Microsoft Excel sẽ chạy.
WindowStyle
Một thành viên thuộc kiểu liệt kê
System.Diagnostics.
ProcessWindowStyle
, điều khiển cách thức hiển thị của cửa sổ. Các
giá trị hợp lệ bao gồm:
Hidden
,
Maximized
,
Minimized
, và
Normal
.
WorkingDirectory
Tên đầy đủ của thư mục làm việc.
Khi đã hoàn tất với một đối tượng
Process
, bạn nên hủy nó để giải phóng các tài nguyên hệ
thống—gọi
Close
,
Dispose
, hoặc tạo đối tượng
Process
bên trong tầm vực của lệnh
using
.
Việc hủy một đối tượng
Process
không ảnh hưởng lên tiến trình hệ thống nằm dưới, tiến trình
này vẫn sẽ tiếp tục chạy.