service

FAQ

Die Anzahl der Fragen und Antworten hängt davon ab, ob Sie eingeloggt sind.

Wie sind die Echtzeiteigenschaften in C#-Programmen?

Windows selbst ist kein Echtzeitsystem. Um Echtzeiteigenschaften zu erreichen, ist es notwendig, die zeitkritischen Code-Teile im Echtzeitkontext (auf der Kernel-Ebene) auszuführen.

Da C# aufgrund der .NET-Umgebung nicht direkt im Echtzeitkontext ausgeführt werden kann, ist das Zeitverhalten weiterhin vom Windows-Scheduler abhängig. Hierbei besteht die Möglichkeit, den zeitkritischen C#-Threads eine hohe absolute Thread-Priorität zu vergeben. Diese Möglichkeit hatte man als Anwendungsprogrammierer bislang nicht. Kithara stellt dazu die entsprechenden Mechanismen bereit. Dies kann zumindest dafür sorgen, sich Vorrang vor allen anderen Windows-Anwendungsaktivitäten zu verschaffen.

Für wirkliches Echtzeitverhalten sollten die entscheidenden Code-Teile mit C++ in eine DLL ausgelagert werden, die dann direkt in den Echtzeitkontext geladen wird.

Für die Kommunikation zwischen Anwendungs- und Echtzeitkontext stehen Shared Memory, Daten- und Message-Pipes, Events oder Sockets zur Verfügung. Eine Reihe von mitgelieferten Beispielprojekten verdeutlicht, wie “harte Echtzeit” in C#-Anwendungen eingebettet werden kann.