Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

C#: Kako da metod ceka na interakciju korisnika?

[es] :: .NET :: C#: Kako da metod ceka na interakciju korisnika?

[ Pregleda: 2046 | Odgovora: 3 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

Maki ^^

Član broj: 47112
Poruke: 3
93.184.93.*



Profil

icon C#: Kako da metod ceka na interakciju korisnika?13.07.2009. u 19:28 - pre 179 meseci
Ne znam je li neko imao slican problem... Jezik je C#.

Imam metod koji se izvrsava donekle, a onda treba da ceka da korisnik unese podatke na glavnoj formi pre nego sto nastavi sa izvrsavanjem. Kako to izvesti?
 
Odgovor na temu

Sapphire
Denis Biondić
.NET software developer
Nürnberg, Germany

Član broj: 213086
Poruke: 290
62.113.8.*



+6 Profil

icon Re: C#: Kako da metod ceka na interakciju korisnika?14.07.2009. u 00:27 - pre 179 meseci
Vjerovatno zavisi od više faktora...

Ti u biti želiš da se kod izvršava do jedne tačke, i onda "stane". Ako bi ovo uradio u programu na bilo koji način koji se trenutno mogu sjetiti, bilo bi prilično neefikasno, naopako i neelegantno urađeno. Npr, možeš postaviti neku bool varijablu, i if uslov u metodi koji prema uslovu grana posao na onaj prije interakcije i poslije; pa kad se prilikom interakcije odradi što želiš, pozoveš istu metodu sa prethodno postavljenom varijablom na true.

Ipak, logično gledajući, koji god da posao radiš - nema baš smisla da neka metoda ide do jedne tačke i stane, osim ako se ne radi o stvarno dugačkoj i vremenski zahtjevnoj metodi. U ovome slučaju, koristi niti. Metodu pozovi iz nove niti, te onda vrlo elegantno pomoću EventWaitHandle-ova možeš komunicirati između glavne UI niti i ove posebne niti u slučaju dodatne potrebne korisničke interakcije.

Pokušaj razdvojiti metodu na dvije, pa nakon interakcije pozovi drugu; a pri kraju prve zapamti sve potrebne podatke u varijable.
Možda, ako se radi o vrlo kratkoj i brzoj metodi, možeš i metodu pozvati nakon interakcije

Imaš mnogo rješenja za ovo...
My programs don’t have bugs, they just develop random features.
 
Odgovor na temu

DarkMan
Darko Matesic

Član broj: 20445
Poruke: 572
77.46.227.*

Jabber: DarkMan


Profil

icon Re: C#: Kako da metod ceka na interakciju korisnika?14.07.2009. u 13:14 - pre 179 meseci
Moras koristiti metode koje blokiraju izvrsavanje koda, kao sto je na primer metoda ShowDialog.
Code:

public bool NekaMetoda()
{
   // neki tvoj kod koji se izvrsava
  Form1 dialog = new Form1();
  if(dialog.ShowDialog() == DialogResult.OK) {
     // preuzmi podatke iz forme
     int value1 = dialog.Value1;
     dialog.Dispose();
     // nastavi obradu
     return true;
  }
  return false;
}
 
Odgovor na temu

Maki ^^

Član broj: 47112
Poruke: 3
93.184.93.*



Profil

icon Re: C#: Kako da metod ceka na interakciju korisnika?18.07.2009. u 19:12 - pre 179 meseci
Hvala na odgovorima. Bilo je korisno videti koje su mi opcije na raspolaganju u ovakvim situacijama, iako mi vecina predlozenih resenja zbog ovoga ili onoga nije odgovarala.

Pravio sam aplikaciju koja nece biti deo konacne verzije programa i koja sluzi za testiranje nekog koda koji sam napravio pre toga. Snasao sam se na sledeci nacin:

Code:

public bool korisnik_uneo_podatke = false;
public bool NekaMetoda()
{
  // Deo pre interakcije korisnika
  do
  {
     Application.DoEvents();
  }
   while (!korisnik_uneo_podatke)

  // Deo posle interakcije korisnika
}
 
Odgovor na temu

[es] :: .NET :: C#: Kako da metod ceka na interakciju korisnika?

[ Pregleda: 2046 | Odgovora: 3 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.