Nhiệm vụ kết thúc có những lợi thế gì so với quá trình kết thúc?


9

Từ những gì tôi biết, mỗi khi chúng tôi muốn dừng một ứng dụng (hoặc một ứng dụng bị đóng băng), chúng tôi sẽ đi đến Trình quản lý tác vụ, chọn ứng dụng Go to Processvà chấm dứt quá trình. "Quá trình kết thúc" được ưu tiên hơn "Kết thúc nhiệm vụ" (đôi khi "nhiệm vụ kết thúc" dù sao cũng không hoạt động).

Hình ảnh cho nhiệm vụ kết thúc:

nhập mô tả hình ảnh ở đây

Hình ảnh cho quá trình kết thúc:

nhập mô tả hình ảnh ở đây

Tuy nhiên, http://technet.microsoft.com/en-us/l Library / bb726964.aspx :

Khi bạn kiểm tra các quy trình, lưu ý rằng mặc dù các ứng dụng có một quy trình chính, một ứng dụng có thể bắt đầu nhiều quy trình. Nói chung, các quy trình này phụ thuộc vào quy trình ứng dụng chính và bị dừng khi bạn chấm dứt quy trình ứng dụng chính hoặc sử dụng Kết thúc nhiệm vụ. Vì điều này, bạn thường muốn chấm dứt quá trình ứng dụng chính hoặc chính ứng dụng thay vì các quy trình phụ thuộc.

Họ đang nói rằng nó được ưu tiên hơn "Kết thúc nhiệm vụ" vì quá trình bị dừng khi tôi dừng ứng dụng. Nhưng tôi hoàn toàn không hiểu logic của họ, Tại sao không đơn giản dừng quá trình lại?

Những lợi thế nào Ending Taskcó hơn Ending Process?

Câu trả lời:


13

Đối với các chương trình có ít nhất một cửa sổ, End Task thực hiện tương tự như nhấp vào nút X"Đóng" - nó sẽ gửi WM_CLOSEtin nhắn đến cửa sổ đó, yêu cầu đóng độc đáo. (Đối với cửa sổ bàn điều khiển, tương đương là CTRL_CLOSE_EVENT.) Chương trình có thể nhắc người dùng lưu các thay đổi hoặc thực hiện các tác vụ dọn dẹp khác nhau. Nếu quy trình tuân thủ, Trình quản lý tác vụ sẽ đợi vài giây và tiến hành chấm dứt quá trình nếu nó vẫn đang chạy.

Nếu quá trình bị đóng băng hoặc không xử lý các thông báo cửa sổ mà nó nhận được, thì dĩ nhiên, cả Nhiệm vụ kết thúc lẫn nút Đóng đều không thể hoạt động. Trong những trường hợp đó, Windows thường sẽ yêu cầu bạn kết thúc chương trình một cách mạnh mẽ, nhưng chỉ sau khi cho chương trình đủ thời gian để trả lời.

Trong khi đó, nút End Process không liên quan đến các tác vụ hoặc cửa sổ - nó gọi TerminateProcess()chức năng và Windows sẽ phá hủy quy trình ngay lập tức mà không thông báo hoặc cho nó bất kỳ cơ hội nào để dọn sạch.

.

Xem thêm:


2
Và đó là lý do tại sao End Task không hoạt động cho các chương trình đông lạnh, phải không?
Daniel Beck

2

Hai câu trả lời khác làm rất tốt khi giải thích sự khác biệt về những gì xảy ra, nhưng chỉ để đưa ra quan điểm về sự khác biệt của chúng về cách nó xảy ra, câu trước nói với chương trình để đóng trong khi câu sau bảo Windows giết chương trình.

Tương tự như vậy, nó giống như sự khác biệt giữa việc yêu cầu ai đó thu thập đồ đạc của họ và rời khỏi phòng và nói với một người chơi ngay lập tức và buộc họ đẩy họ ra.


1

Để giải thích: End Task sẽ thử và đóng ứng dụng một cách duyên dáng. Nếu nó bị treo, thì nó sẽ cung cấp cho bạn tùy chọn "kết thúc ngay bây giờ". Điều này mang lại cho bạn hai lợi ích so với việc tiêu diệt quá trình (chỉ cần brute-force xóa sạch nó):

  1. cho phép khôi phục sự cố cho các ứng dụng đã đăng ký với Windows Vista (và cao hơn) Mô tả MSDN ngắn gọn
  2. cho phép gửi báo cáo lỗi

-7

Nó chỉ là một sự khác biệt trong thuật ngữ. Có lẽ Microsoft trợ giúp bờ tây nói nhiệm vụ, trong khi bờ đông sử dụng quy trình đúng kỹ thuật.

Về mặt kỹ thuật nó vẫn chấm dứt quá trình. Nhiệm vụ có lẽ là một trình bao bọc của quá trình hiển thị một cửa sổ? Trợ giúp của trình quản lý tác vụ cũng không xác định.


3
Thuật ngữ " nhiệm vụ " chính xác; nó có một ý nghĩa khác với "quá trình".
dùng1686
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.