Tôi đang viết một ứng dụng thời gian thực mềm bằng C #. Một số tác vụ nhất định, như đáp ứng các yêu cầu phần cứng đến từ mạng, cần được hoàn thành trong một lượng mili giây nhất định; tuy nhiên không phải là 100% nhiệm vụ quan trọng để làm như vậy (nghĩa là chúng ta có thể chịu đựng được nó đúng giờ hầu hết thời gian và 1% là không mong muốn nhưng không phải là một thất bại), do đó là phần "mềm".
Bây giờ tôi nhận ra rằng C # là ngôn ngữ được quản lý và ngôn ngữ được quản lý không đặc biệt phù hợp với các ứng dụng thời gian thực. Tuy nhiên, tốc độ chúng ta có thể hoàn thành công việc trong C #, cũng như các tính năng ngôn ngữ, như phản xạ và quản lý bộ nhớ, giúp cho công việc xây dựng ứng dụng này dễ dàng hơn nhiều.
Có bất kỳ tối ưu hóa hoặc chiến lược thiết kế nào người ta có thể thực hiện để giảm số lượng chi phí và tăng tính quyết định? Lý tưởng nhất là tôi sẽ có những mục tiêu sau
- Trì hoãn việc thu gom rác cho đến khi "an toàn"
- Cho phép trình thu gom rác hoạt động mà không can thiệp vào các quy trình thời gian thực
- Ưu tiên luồng / quy trình cho các nhiệm vụ khác nhau
Có cách nào để thực hiện những điều này trong C # không, và có bất kỳ điều gì khác cần chú ý liên quan đến thời gian thực khi sử dụng C # không?
Mục tiêu nền tảng cho ứng dụng là .NET 4.0 Client Profile trên Windows 7 64-bit, với. Tôi đã đặt nó hiện tại thành hồ sơ Khách hàng nhưng đây chỉ là tùy chọn mặc định và không được chọn vì bất kỳ lý do cụ thể nào.