Tôi chỉ xem xét một số mã tôi đã viết để giao tiếp với cổng nối tiếp trong C# trên CF2.0. Tôi không sử dụng sự kiện DataReceived vì nó không đáng tin cậy. MSDN states that:Giao tiếp cổng nối tiếp: đấu nối cổng nối tiếp vs sử dụng cổng nối tiếp DataReceived event
Sự kiện DataReceived không phải là gauranteed được nâng lên cho mỗi byte nhận. Sử dụng thuộc tính BytesToRead để xác định lượng dữ liệu còn lại để được đọc trong bộ đệm.
Tôi thăm dò ý kiến của cổng bằng phương thức read() và ủy quyền xử lý dữ liệu khi đọc. Tôi cũng đọc ở đâu đó rằng "bỏ phiếu là xấu" (không có lời giải thích nào).
Bất kỳ ý tưởng nào tại sao việc bỏ phiếu có thể xấu? bên cạnh các lưu ý luồng thông thường - Tôi có một chủ đề riêng biệt (chủ đề nền) thăm dò ý kiến các cảng, các chủ đề được thoát sau khi dữ liệu được đọc, tất cả các thử nghiệm và hoạt động tốt.
Tuyệt đối, đây cũng là trải nghiệm của tôi. – Andy