Avatar
Theodor Johnson
Redaktor
Avatar
Theodor Johnson:

Chtěl jsem se zeptat, jaký příkaz se nejlépe hodí k ukončení aplikace bez datových ztrát, zatím žádný neznám, ale přijde mi že Process.GetCu­rrentProcess()­.Kill(); před uložením všech dat není zrovna bezpečný, nevíte někdo jaký je nejbezpečnější způsob ukončení?

Odpovědět 22.8.2012 21:48
Přecházím na "Cross-Platform Development"
Avatar
Odpovídá na Theodor Johnson
David Jančík [sczdavos]:

Příjde na to. Aplikaci můžeš ukončit mnoha způsoby.

Close();

Zavře instanci okna.

Application.Exit();

Ukončí hlavní form aplikace. Tzn. se vypne.

Environment.Exit();

Brutálně zavře aplikaci. Můžeš použít i v konstruktou formu.

A další...

Přes procesy vlastně zavřeš daný proces aplikace.

Jestli chceš zavřít jinou aplikaci než svou tak tam je nějaký

CloseMainWindow();

To ukončí aplikaci jako když klepneš v task manageru na ukončit. Tedy korektně se vyšle signál a aplikace jej zpracuje. A pak je ještě

Close();

ten zažádá o zavření všech instancí spojených z daným procesem.

Nahoru Odpovědět  +1 22.8.2012 22:09
Čím více času dostaneš, tím méně ho máš.
Avatar
Theodor Johnson
Redaktor
Avatar
Odpovídá na David Jančík [sczdavos]
Theodor Johnson:

Takže jestli jsem to dobře pochopil tak nejlepší k ukončení celé aplikace je Close() ?

Nahoru Odpovědět 22.8.2012 22:11
Přecházím na "Cross-Platform Development"
Avatar
Theodor Johnson
Redaktor
Avatar
Odpovídá na David Jančík [sczdavos]
Theodor Johnson:

Ale co když v aplikace má víc forms, znamená to že Application.Exit(); ukončí jen hlavní, nebo všechny?

Nahoru Odpovědět 22.8.2012 22:14
Přecházím na "Cross-Platform Development"
Avatar
Odpovídá na Theodor Johnson
David Jančík [sczdavos]:

Close ti ukončí aktivní instanci daného formu. Application.Exit(); ve zkratce ukončí všechno.
Můžeš si počíst taj: http://msdn.microsoft.com/…s157894.aspx

Nahoru Odpovědět 22.8.2012 23:52
Čím více času dostaneš, tím méně ho máš.
Avatar
denoy
Člen
Avatar
denoy:

Já používám 2 Formy, login a 'to potom' nějaké to rozhraní, když zavře form2, tak se ho jěště zeptám, jestli orpavdu chce zavřít, když ano volám Application.E­xit();, protože Close() ti zavře jen ten daný Form2 a Form1 pořád běží jako invisible, ve Form1 dle mě je už celkem jedno, jestli použiješ Close nebo Exit, jinak sczdavos to celkem pěkně popsal.

 
Nahoru Odpovědět 24.8.2012 17:25
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 6 zpráv z 6.