Process console = Process.Start("Client.exe", "-filename:" + fname + " -list:" + myList)
Lauf wird myList.ToString() ausführen und übersetzen:
Client.exe -filename:testDoc -list:System.Collections.Generic.List`1[System.String]
, die nicht das, was Sie erreichen wollen. Versuchen Sie
Process console = Process.Start("Client.exe", "-filename:" + fname + " -list:" + String.Join(",", myList))
oder etwas ähnliches.
UPDATE
Natürlich wollen Sie vielleicht ein paar mehr zivilisierte Methoden der Übergabe von Daten zu diesem Prozess zu berücksichtigen. Gängige Methoden sind:
- Datenbank
- Dateisystem (Dateien)
- WCF
UPDATE
der Kontext, in dem Kommentar geliefert Given, die ich für eine entscheiden würde Vollständig getrennter Windows-Dienst, der auf dem Server läuft (ohne Unterbrechung, nicht aufgerufen) mit der für die Synchronisation verwendeten Datenbank:
- Datenbank mit Tisch
Tasks
mit Spalten input data
, output data
und andere möchten Sie vielleicht (wie einige Daten oder Benutzer-IDs)
- Webseite Zeilen in dieser Tabelle einfügen als Daten-zu-Verarbeitende-erscheint
- Fenster wiederholter Dienst (alle x Sekunden) Abfrage der Tabelle nach nicht verarbeiteten Aufgaben und Ausführung der Aufgaben, falls vorhanden; Ergebnisse erhalten in der
output data
Spalte
- auf Benutzeranforderung Homepage Anfragen für eine bestimmte Aufgabe gespeichert und zeigt seinen Status, um die Ausgangsdaten zeigt, wenn es sie gibt
Dies ist wesentlich robuster und skaliert wesentlich besser mit wachsenden User-Traffic .Der Dienst selbst würde idealerweise Worker-Threads für separate Aufgaben generieren, um die Vorteile mehrerer Kerne zu nutzen. Wenn eine solche Architektur vorhanden ist, gibt es viele Möglichkeiten, die Leistung zu optimieren und die Aufgaben zu überwachen.
Nur aus Neugier. Wie viele Daten (Bytelänge) befinden sich in Ihrer Liste? – Steve
Die Liste enthält Dokumente Titel in der Form: "GUID_fileName.pdf". Über die Byte-Länge weiß ich nicht, ich sollte mir das anschauen, da die Titel sich voneinander unterscheiden werden. – Francesco
Ich habe gefragt, weil es eine definitive Grenze für Befehlszeilenargumente Länge – Steve