Hey Thomas,
et lyskryds er reelt bare en state-machine.
opbyg dit state-transition-diagramme og implementer det i en c# klasse

for at sende data via parallelporten, kan du bruge inpout32.dll fra
http://logix4u.net/for at bruge den fra C#, kan du bruge DLL import
[DllImport("inpout32.dll", EntryPoint="Out32")]
public static extern void Output(int adress, int value);
[DllImport("inpout32.dll", EntryPoint="Inp32")]
public static extern void Input( int adress);
Dernæst bruger du bare output(888,225) for at sætte alle pins "high" eller output(888,0) for at sætte alle pins "low".
Du kan læse fra porten via input(address). ex:
int readInput = input(255);