(Sửa: để làm rõ, mục tiêu chính của tôi là đồng thời, nhưng không nhất thiết phải cho đa lõi máy)Bản vẽ đa luồng trong .NET?
Tôi khá mới cho tất cả các khái niệm về đồng thời, nhưng tôi đã tìm ra tôi cần phải có các quy trình vẽ song song, vì một số lý do:
- Tôi muốn vẽ các phần khác nhau của đồ họa một cách riêng biệt (nền được làm mới ít thường xuyên hơn nền trước, được lưu trên bộ đệm).
- Tôi muốn kiểm soát mức độ ưu tiên (Ưu tiên hơn đối với phản hồi giao diện người dùng so với vẽ biểu đồ phức tạp).
- Tôi muốn có tính năng vẽ từng khung hình đa luồng.
- Tôi muốn hủy bỏ các quy trình vẽ phức tạp trên bộ đệm.
Tuy nhiên, là người mới bắt đầu, mã của tôi sớm giống như một mớ hỗn độn và tái cấu trúc hoặc sửa lỗi trở nên khó xử đến mức tôi quyết định chơi nhiều hơn trước khi làm bất cứ điều gì nghiêm trọng.
Vì vậy, tôi muốn biết làm thế nào để làm sạch, dễ dàng để mantain. NET multithreaded mã có ý nghĩa khi tôi nhìn vào nó sau khi thức dậy vào ngày hôm sau. Vấn đề lớn nhất tôi có là cấu trúc ứng dụng để tất cả các phần nói chuyện với nhau một cách thông minh (trái ngược với vụng về và hacky).
Bất kỳ đề xuất nào được chào đón, nhưng tôi có ưu tiên cho các nguồn mà tôi có thể tiêu hóa trong thời gian rảnh (ví dụ, không phải 500 trang thảo luận về đồng thời) và cho C#/VB.NET. phiên bản (vì tôi thấy đã có advances). Về cơ bản tôi muốn một cái gì đó thẳng đến mức để tôi có thể bắt đầu bằng cách chơi với các khái niệm về các dự án đồ chơi của tôi.
Mô tả nhu cầu của bạn để biết thêm chi tiết sẽ giúp mọi người trả lời câu hỏi của bạn. Bạn muốn vẽ toàn bộ giao diện người dùng theo cách đa luồng? Bạn có chỉ là một điều khiển duy nhất nên được đa luồng? Bạn có thể sẽ kết thúc với một hồ bơi thread tiêu thụ các lớp vẽ của bạn. –
Tôi xin lỗi, mối quan tâm chính của tôi là cấu trúc mã như vậy (thông thường là đồng bộ) theo cách đồng thời. Trong trường hợp này, nó là một điều khiển đơn có thể tách bản vẽ của nó qua hai hoặc ba luồng, nhưng điều khiến tôi khó hiểu là sự đồng thời có thể được áp dụng cho một cái gì đó bình thường được bắt đầu và kết thúc trên một sự kiện Paint. –