Tôi có một thư viện lớp .NET xoay vòng một tiến trình phụ được tiếp tục chạy cho đến khi tôi vứt bỏ đối tượng.Tìm tất cả quy trình con của quy trình .NET của riêng tôi/tìm hiểu xem liệu một quy trình cụ thể có phải là con của riêng tôi không?
Do một số lần xuất hiện của chương trình kéo dài trong bộ nhớ, tôi đã quyết định thêm kiểm tra tích hợp để đảm bảo rằng nếu tôi để đối tượng mất hiệu lực GC/Hoàn tất, quá trình đó sẽ được gỡ xuống. Tuy nhiên, vì quá trình này là máy khách dòng lệnh Mercurial, và máy chủ xây dựng của tôi đã chạy Mercurial như là một phần của các hoạt động riêng của nó, tôi hình dung các tình huống mà Mercurial đang chạy khi thử nghiệm bắt đầu hoặc nó được bắt đầu. Quay lại đầu trang và vẫn chạy, khi kiểm tra kết thúc, liên quan đến máy chủ xây dựng chứ không phải thử nghiệm của tôi.
Vì vậy, tôi muốn đảm bảo khách hàng Mercurial tôi tìm thấy (hoặc không) là khách hàng tôi đã bắt đầu và không chỉ bất kỳ khách hàng nào hiện đang chạy.
Vậy câu hỏi là thế này:
- Làm thế nào tôi có thể tìm hiểu xem khách hàng Mercurial Tôi đang tìm kiếm tại được bắt đầu bởi tiến trình của tôi?
Bằng cách "xem", tôi đã xem xét sử dụng phương pháp Process.GetProcesses, nhưng đây không phải là yêu cầu.
Nếu một câu hỏi khác là tốt hơn, "Cách tìm kiếm tất cả quy trình con của quy trình của riêng tôi", nghĩa là. dễ dàng hơn để trả lời, đó là một là quá đủ là tốt.
Tôi tìm thấy trang này: How I can know the parent process ID of a process?, nhưng có vẻ như tôi phải đặt tên quy trình. Nếu tôi chỉ cung cấp cho nó "hg", câu hỏi đó không quá mơ hồ đối với trường hợp tôi đang tìm kiếm?
Điều này có hiệu quả đối với tôi, mặc dù tôi đã đi theo một cách tiếp cận đơn giản hơn bằng cách sử dụng
ManagementObject
và không có người tìm kiếm nào. Tôi đã đấu tranh với việc giết chết các quy trình con của tôi một thời gian, cảm ơn! – DarkhydroTrình tiết kiệm cuộc sống !!!!!! – mstrewe