2011-01-26 29 views
5

Tôi có một ứng dụng biểu mẫu cửa sổ cha và một commandline.exe con. Sử dụng một ví dụ MSDN sửa đổi cho các đường ống vô danh (h ttp://msdn.microsoft.com/en-us/library/bb546102.aspx) Tôi có thể gửi một đối tượng được tuần tự hóa từ cha mẹ cho đứa trẻ. Đứa trẻ có thể deserialise đối tượng và đọc các giá trị..net C# Anonymous Pipes - Misunderstood?

Có lẽ tôi hiểu sai về cơ học của đường ống ẩn danh, tuy nhiên tôi hy vọng đường ống vẫn mở cho đến khi tôi đóng nó, để tôi có thể gửi đối tượng khác khi tôi thích, tuy nhiên sau khi đối tượng được gửi/nhận đường ống không còn được kết nối (được xác định bởi thuộc tính IsConnected).

Hiện tại, khi đối tượng được gửi từ cha mẹ sang con, đường ống được đóng (không phải bởi "tôi"). Tôi duy trì một tham chiếu đến pipeHandle ban đầu tại địa phương nhưng dường như không thể mở lại đường ống. Tôi có thể hoặc không nên đóng cửa ngay từ đầu? Tôi không thấy làm thế nào tôi có thể mở một đường ống mới, vì tôi không thể vượt qua xử lý từ cha mẹ cho khách hàng (pipehandle ban đầu đã được thông qua bởi args trong trường hợp đầu tiên)

Làm cách nào để gửi một đối tượng khác từ cha mẹ cho đứa trẻ?

Tôi nhận ra tôi có thể sử dụng tên có tên, nhưng MSDN đề xuất các đường ống ẩn danh cho IPC trên cùng một máy cục bộ.

Rất cám ơn

Arnie

+1

Vui lòng đăng mã của bạn. –

Trả lời

7

Nếu bạn đang làm như thế nào trong các mẫu MSDN bạn đang đóng StreamWriter (với tuyên bố using), và closing a StreamWriter đóng dòng cơ bản. Đường ống vẫn mở miễn là luồng vẫn mở, vì vậy nếu bạn không muốn đóng, đừng đóng luồng cũng như StreamWriter.