Wenn ich mich richtig erinnere, musst du den Content des Post Requests in den StandardInput-Stream schreiben, also anstatt compilerProcessInfo.EnvironmentVariables.Add("BODY", RequestCommand); sollte es so aussehen: compilerProcess.StandardInput.Write(RequestCommand) nachdem du den Prozess gestartet hast. Vielleicht geht aber auch beides.
Fehler der php-cgi.exe stehen im StandardError-Stream, den solltest du also auch auslesen um zu sehen was du falsch machst.
Wenn es nur 2 verschiedene Prioritäten gibt, dann ist das einfachste mit 2 Queues zu arbeiten, einen für die wichtigen Requests und einen für die normalen. Wenn es Requests im "wichtigen" Queue gibt, dann nimmt sich der Thread diesen, ansonsten einen aus dem "normalen" Queue.
Du speicherst einfach in einer Variable ob beim letzten Prüfen die Hand im Rechteck war, wenn die Hand außerhalb ist, beim letzen mal aber noch innerhalb, dann kannst du dein Leave-Event auslösen.
Dann guck dir an, was in diesen bytes drinsteht, und mach dann .Trim((char)0x00) oder was auch immer in den überflüssigen bytes steht. Oder du bekommst auch die Länge des Strings übertragen, dann kannst du mit .Substring() arbeiten.
Dafür gibt es auch direkt Control.DesignMode, du brauchst dein IsInDesignMode() also nicht :)
Das funktioniert dann auch wenn du andere Desginer als Visual Studio benutzt, falls die devenv.exe irgendwann mal anders heißen sollte oder deine eigene Anwendung devenv.exe heißt.
Bevor du ein Programm schreibst, dass die Synchronisation von der DropBox an und ausschaltet, würde ich lieber im Post/Pre-Build in eine richtige Versionsverwaltung einchecken, dafür musst du nicht mal ein Programm schreiben, sondern einfach nur git mit den richtigen Parametern aufrufen.
Du könntest auch an einen Pfad außerhalb der Dropbox kompilieren und nur die *.cs und Projektdateien in der Dropbox haben. Aber am einfachsten ist wirklich eine richtige Quellcodeverwaltung einzusetzen, da Dropbox für so etwas einfach nicht da ist.
Der erste Timer existiert und läuft noch. Du erstellst dann einen 2. Timer, der das gleiche Event aufruft -> Das Event wird 2 mal alle 500ms aufgerufen.
Im Tick-Event wird der Zähler erhöht, ist damit 1 (ich gehe mal davon aus, dass der am Anfang 0 ist). Dadurch wird das erste Bild angezeigt. Da der Zähler aber immer noch kleiner 4 ist, wird die Schleife nochmal ausgeführt, der Zähler ist dann 2, das 2. Bild wird angezeigt und zwar gleich nachdem das erste Bild angezeigt wird. Und das ganze vier mal.
Du willst das ganze ohne while-Schleife, ungefähr so:
public void t3_Tick(object sender, EventArgs e) {
zaehler++;
if (zaehler == 1)
pictureBox_quit.Load("C:\\Users\\Jaroprus\\Pictures\\Quit_1.png");
else if (zaehler == 2)
pictureBox_quit.Load("C:\\Users\\Jaroprus\\Pictures\\Quit_2.png");
else if (zaehler == 3)
pictureBox_quit.Load("C:\\Users\\Jaroprus\\Pictures\\Quit_3.png");
}
Und insbesondere für den Aspekt "Anfänger helfen Anfängern" sei folgendes Zitat aus dem verlinkten Thread explizit genannt:
Zitat
Auch wenn man im Hinterkopf behalten sollte, dass die Tipps [von Anfängern] zwar fast immer gut gemeint sind und auch häufig funktionieren, aber doch oft suboptimal sind (z.B. wenn globale Variablen statt Parameterübergabe vorgeschlagen wird). Es besteht also dabei leider immer die erhöhte Gefahr, dass schlechte Ratschläge gegeben werden.