FAQ

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

Wie können Echtzeiteigenschaften in C#-Programmen genutzt werden?

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 zuzuweisen.

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++ oder Delphi 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.