Zum Inhalt springen
View in the app

A better way to browse. Learn more.

Fachinformatiker.de

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

C# programm anhalten, bis .bat-file ausgeführt ist

Empfohlene Antworten

Veröffentlicht

Hi,

ist es möglich ein c#-Programm so lange anzuhalten bis ein batch-file abgearbeitet ist? Das wäre für mich nämlich sehr wichtig, da ich mehrere batch-files hintereinander ausführen lasse und diese aber auf die gleichen dateien zugreifen müssen.

Wer kann mir helfen?

Mfg,

Reality

Hi,

ich mach zwar nicht in C# aber normalerweise löst man das so:

Möglichkeit 1

Du erzeugst mit der .bat ein Ereigniss: z.B. Erstellung der Datei: fertig.txt

Eine geteimte Schleife in C# fragt alle Sekunde danach ab.

Danach löschen der Datei fertig.bat und das Programm darf weiter laufen.

Möglichkeit 2

Geht nur bei kleinen .bat Ereignissen, also nicht bei Dateitransfer der unbekannt groß ist.

Du aktivierst eine Zeitschleife und definierst, das nach Aktivierung der .bat

z.B. 2 Sekunden zu warten ist.

Dies ist nicht gallant aber einfach.

Ich hoffe, ich konnte helfen.

Hawk

Hallo

Vielleicht ist

Process.WaitForExit

das was du brauchst....

HTH

Yahoo

da hält aber nur der prozess (Batch-File) , den ich aufgerufen habe an

IT-Halk : lösch lieber die Möglichkeit 2, sonst gibts für jeden, der das bei der Arbeit macht mächtig haue. Das ist eine nicht zu akzeptierende Wahl !

Lass die Aktion in einem eigenen Thread laufen, die anderen genannten Moeglichkeiten solltest du bitte schnellstmoeglichst vergessen.

Was heißt in einem eigenen Thread?

Hallo,

ich hatte das so angedacht:

Mit dem Process-Objekt das Batch-File starten und dann die Option festlegen.

Dann wird die Verarbeitung angehalten, bis sich das Batch beendet.

Hab das mal so gemacht, hat funktuniert. (Leider habe ich keinen Code hier)

Mit Threads? Da muss man sich doch dann "manuell" drum kümmern, ob die fertig sind, oder wie meinst du das Denny?

Gruß

Yahoo

Was für eine Option meinst du denn jetzt?

Hallo,

sorry, "Option festlegen" war blöd formuliert.

Versuche


Process p = System.Diagnostics.Process.Start(batch);

p.WaitForExit ();

zusätzlich kann man den Stati abfragen:

p.HasExited

So hätte ich das angedacht...

Yahoo

Warum manuell drum kuemmern? Man kann den aufgerufenen Thread den aktuellen joinen lassen.


System.Threading.Thread t = new System.Threading.Thread(new System.Threading.ThreadStart(lala));

t.Start();

t.Join();

Natuerlich muss man dabei ueberpruefen, ob die Batch fertig ist.

Hi Denny,

stimmt, so geht's auch.

So denn,

Yahoo

Archiv

Dieses Thema wurde archiviert und kann nicht mehr beantwortet werden.

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.