Biorąc pod uwagę, że znana forma .NET działa w systemie Windows, który nie jest O/S w czasie rzeczywistym, a MONO działa pod Linuksem (standardowe jądro również nie jest O/S w czasie rzeczywistym). Biorąc pod uwagę, że każdy schemat przydzielania pamięci oferujący odśmiecanie (jak w "zarządzanym" .NET), a także jakikolwiek schemat pamięci sterty, wprowadzi niedeterministyczne, potencjalnie nietrywialne opóźnienia w zachowaniu przy wykonywaniu aplikacji.Czy C# .NET może być używany do trudnych w czasie rzeczywistym?
Czy istnieje kombinacja alternatywnego hosta O/S i paradygmatu kodowania, w którym można wykorzystać całą moc i udogodnienia C# .NET podczas wdrażania rozwiązania, które może wykonać wyznaczone fragmenty kodu w ściśle określonych ograniczeniach czasowych? na przykład uruchamiać metodę C# co 10ms z tolerancją mniejszą niż 1ms, a czas zakończenia jest określony wyłącznie przez pracę wykonaną w samej metodzie?
Oczywiście wniosek musiałby być starannie napisany; kod czasowo krytyczny musiałby unikać alokacji pamięci; aplikacja musiałaby mieć ukończoną całą alokację pamięci itd. i po uruchomieniu twardej pętli czasu rzeczywistego nie będą aktywne żadne inne wątki. Ponadto host O/S musiałby obsługiwać planowanie w czasie rzeczywistym.
Czy jest to możliwe w ramach platformy .NET/MONO, czy też jest wykluczone przez konstrukcję środowiska wykonawczego, frameworka i O/S systemu .NET, na których jest obsługiwana (lub zgodny odpowiednik) .NET?
Na przykład: czy możliwe jest wykonywanie niezawodnych precyzyjnych (~ 1 ms) kontroli maszyn wyłącznie w języku C# z czymś podobnym do NETduino, czy też mają one ograniczenia lub wymagają alternatywnych strategii dla takich aplikacji?
Najpierw należy wybrać system operacyjny. To, co pozostanie jako odpowiednie narzędzie programistyczne, będzie bardzo małą listą i nie będzie zawierało języków z śmieciarzem. Normalnym rozwiązaniem jest odciążenie zadań wymagających ciężkiej reakcji w czasie rzeczywistym na mikrokontrolery. Sterownik silnika lub sterownik PLC to przykłady przykłądowe. –