2011-12-04 32 views
5

Điều này có vẻ là một câu hỏi trùng lặp cho Is KillTimer necessary?, nhưng tôi muốn xác nhận điều này với nguồn đáng tin cậy.KillTimer có thực sự cần thiết không?

Cửa sổ phá hủy có thực sự miễn phí tài nguyên được hệ điều hành cấp cho bộ hẹn giờ không? (không DestroyWindowsTimers thực sự được gọi là hãy để một mình nếu chức năng đó thực sự tồn tại? nếu có, ở đâu?)

Trả lời

6

Không, không cần thiết. Từ các tài liệu của DestroyWindow (với sự nhấn mạnh thêm):

Chức năng gửi WM_DESTROYWM_NCDESTROY điệp vào cửa sổ để tắt nó và loại bỏ sự tập trung bàn phím từ nó. Chức năng này cũng phá hủy menu của cửa sổ, xóa hàng đợi thông báo chuỗi, hủy hẹn giờ, xóa quyền sở hữu khay nhớ tạm và ngắt chuỗi trình xem khay nhớ tạm (nếu cửa sổ ở đầu chuỗi người xem).

2

Thực hiện tìm kiếm trên google chỉ thực sự tham chiếu đến nó trông giống như mã nguồn Win2k. Url kết thúc bằng /Censorship/win2k_sources/private/.../timers.c, tôi giả sử từ source code leak một thời gian trở lại. Tôi đã không xem mã, tôi cũng không đăng một liên kết ở đây.

Chức năng đó rất có thể tồn tại - giống như vậy hầu như phải tồn tại đối với bộ hẹn giờ được liên kết với tay cầm cửa sổ - vì thông báo hẹn giờ được gửi tới một cửa sổ cụ thể.

Tôi không thể thấy bất kỳ nơi nào trong tài liệu nêu rõ rằng bạn không phải gọi số KillTimer để loại bỏ bộ hẹn giờ. Vì vậy, dựa trên hợp đồng được lập tài liệu, bạn cần gọi số KillTimer. Trong thực tế Windows có thể sẽ dọn dẹp nó cho bạn, nhưng vì đó là hành vi không có giấy tờ, bạn nên viết mã của bạn để theo dõi hành vi được ghi lại và gọi KillTimer trên tất cả các bộ hẹn giờ của bạn.

Các vấn đề liên quan