C# Threading? Befehlspipeline per Kontextmenu

Hallo Forum,

ich habe in C# eine Konsolenanwendung geschrieben das Textdateien abarbeitet und das Ergebnis wiederum in Textdateien schreibt.
Ein Bestandteil meines Programmes ist die Übergabe von Argumenten

public static int Main(strings[] args)
{

for (int arg=0; arg

Hallo!

Mit den COM-Threadingmodellen hat das gar nichts zu tun.
Windows ruft bei Mehrfachauswahl im Explorer immer für jede Datei einzeln das entsprechende Programm auf und ich glaube nicht, dass man das ändern kann.
Also muss Dein Programm darauf reagieren, dass es bereits einmal läuft und eine weitere Instanz davon gestartet werden soll (mit eigenen Kommandozeilenargumenten). D.h. die zweite (dritte, …) Instanz muss ihre Kommandozeilenargumente an die bereits laufende (erste) Instanz weitergeben und sich dann gleich beenden.

Das Erkennen, ob erste oder weitere Instanz lässt sich mit einer Semaphore realisieren, die Kommandozeilenübergabe z.B. per Remoting über einen IPCChannel.

Gruß,
Martin

Hallo Martin,

vielen Dank für die Antwort. Semaphoren sind mir aus vergangenen Vorlesungen noch ein Begriff, wie ich allerdings mit dem IPCChannel umgehe ist mir ein Buch mit sieben Siegeln. Wie kann ich das den coden?

Hi!
Schau mal hier: http://msdn.microsoft.com/en-us/library/ms996475.aspx
Dort wird noch mit einem lokalen TcpChannel zur Kommunikation zwischen den 2 Instanzen gearbeitet (den IpcChannel gab’s damals noch nicht), aber wenn man mal das Prinzip verstanden hat, lässt es sich recht leicht auf einen IpcChannel umstellen.

Gruß,
Martin