Tôi đang cố gắng gửi một chuỗi qua một đường ống có tên bằng cách sử dụng StreamWriter, nhưng lớp StreamWriter chỉ cung cấp các hoạt động đồng bộ. Tôi có thể sử dụng phương thức BeginWrite của lớp NamedPipeServerStream, nhưng tôi tự hỏi tại sao không có lớp nhà văn nào cho phép các hoạt động không đồng bộ. Tôi có thiếu một cái gì đó hiển nhiên?Sử dụng các đường ống được đặt tên không đồng bộ với StreamWriter
5
A
Trả lời
2
Điều này sẽ phức tạp hơn đáng kể so với luồng thô. Đối với các luồng thô, bất kỳ lượng dữ liệu nào có thể đến không đồng bộ và hệ thống chỉ chuyển bộ đệm cho bạn. Người đọc yêu cầu mã hóa ký tự có thể biến vài byte dữ liệu thô thành một ký tự Unicode duy nhất. Không phải là điều này sẽ là không thể, các thư viện khung công tác không mang nó đến mức xa, do đó bạn sẽ cần tự mình làm công việc này.
(Tùy thuộc vào nhu cầu của bạn, tạo ra thread khác và thực hiện các hoạt động đồng thời trên nó có thể làm cho nó dễ dàng hơn để viết chương trình của bạn. Lưu ý khả năng mở rộng đó sẽ là thường cao hơn khi bạn sử dụng Begin/End async.)
Các vấn đề liên quan
- 1. Nonblocking/không đồng bộ nămo/đặt tên đường ống trong hệ thống tập tin/vỏ?
- 2. Thiết lập đường ống đọc từ các đường ống được đặt tên mà không bị chặn trong bash
- 3. Hỗ trợ đường ống được đặt tên Windows trong Linux
- 4. Không được tìm thấy đường ống có tên khi sử dụng WCF netNamedPipeBinding
- 5. Nên đặt tên các đường ống được mở bằng mkfifo và cách nào?
- 6. Ống được đặt tên là gì?
- 7. Giám sát các đường ống có tên trong C#
- 8. hoạt động song công giữa hai quy trình sử dụng các đường ống có tên trong C#
- 9. Đường ống được đặt tên riêng trong phiên máy chủ đầu cuối
- 10. thi hành lệnh shell với | (đường ống) sử dụng NSTask
- 11. cách sử dụng GNU Time với đường ống
- 12. Làm thế nào để không gian tên JS của chúng tôi để sử dụng với đường ống tài sản Rails
- 13. Làm thế nào để giảm tính toàn vẹn của WCF được đặt tên theo đường ống
- 14. Hai đường ống được đặt tên duy nhất xung đột và InvalidCredentialException
- 15. Nơi thích hợp để đặt các đường ống có tên trên Linux là gì?
- 16. ước đặt tên cho getter không đồng bộ
- 17. Sử dụng RACCommand với hoạt động mạng không đồng bộ
- 18. Lấy các kết quả khác nhau bằng cách sử dụng đường ống với các hàm
- 19. Đường ống chương trình sử dụng WriteConsole
- 20. Làm thế nào để sử dụng rspec để kiểm tra các tuyến đường được đặt tên?
- 21. Ứng dụng HTTP không đồng bộ với Netty
- 22. Số lượng Khách hàng có thể kết nối với một Ống được Đặt tên
- 23. kiểm soát tên của một đường ống được đặt tên khi lưu trữ WCF net.pipe ràng buộc trong IIS
- 24. Đơn đặt hàng được đồng bộ hóa
- 25. WebRequals không đồng bộ sử dụng C#
- 26. C++: Thực hiện các tên được đặt tên bằng cách sử dụng API Win32
- 27. Với StreamWriter không hoạt động \ n (C#)
- 28. Rspec và các tuyến đường được đặt tên
- 29. Lỗi cài đặt đường ống. Không tìm thấy Setuptools.command
- 30. Sử dụng Hành động Không đồng bộ để Chạy Mã Đồng bộ
tôi biết rằng http://stackoverflow.com/questions/3015748/how-to-do-a-non-waiting-write-on-a-named-pipe-c câu hỏi là rất giống nhau, nhưng tôi tự hỏi tại sao. không cung cấp chức năng này. Tôi có thiếu một số điểm rõ ràng? – Lenik