Kezdőoldal » Számítástechnika » Programozás » C#, miért történik meg egyre...

C#, miért történik meg egyre ritkábban az értékadás?

Figyelt kérdés

private void BtnUnlock(object sender, RoutedEventArgs e)

{

//...

Process();

}


private void Process()

{

DataContext = this;


_bgWorker.DoWork += (s, f) =>

{

for (int i = 0; i <= 5; i++)

{

Thread.Sleep(1000);

WorkerState = i;

Application.Current.Dispatcher.Invoke(() =>

{


ProgressReverse.Content = 5 - WorkerState;

});

}

};


_bgWorker.RunWorkerAsync();

}


private void _bgWorker_RunWorkerCompleted(object sender, RunWorkerCompletedEventArgs e)

{

Money += bonus;


Process();

}


Ez egy végtelen ciklus, de sajnos a Money += bonus csak az első, majd a 3., majd még egyre ritkábban történik meg, miért?


2020. febr. 1. 18:02
1 2
 1/13 A kérdező kommentje:
Legelőször megnyomok egy gombot.Meghívódik a Process, ami elindít egy progress bar.Ha végez a progress bar akkor megnöveli a money értékét, majd újból meghívódik a Process, ami újból elindítja a progress bar-t, de mikor másodjára végez, a _bgWorker_runWorkerCompeleted már nem hívódik meg(nem növelődik meg a money értéke).
2020. febr. 1. 18:15
 2/13 anonim ***** válasza:
57%
Pastebin?
2020. febr. 1. 19:38
Hasznos számodra ez a válasz?
 3/13 anonim ***** válasza:
73%
Mert egyre többször iratkozol fel a DoWorkre...
2020. febr. 1. 21:07
Hasznos számodra ez a válasz?
 4/13 A kérdező kommentje:

rendben, köszönöm,

van valami ötleted esetleg, hogy tudnám kiküszöbölni a problémát?

2020. febr. 1. 23:14
 5/13 anonim ***** válasza:
78%
Ne iratkozz fel egyre többször a DoWork-re.
2020. febr. 2. 00:56
Hasznos számodra ez a válasz?
 6/13 anonim ***** válasza:

Én nem látom mi történik.

_bgWorker -el dolgozol, de számunkra rejtély, hogy mi az. Hozzáadsz egy callback-et, ez alatt szintén nem értem mit csinálsz, mert ez is egy felüldefiniált műveletnek néz ki. Nincs tudomásunk róla, hogy egyébként az a callback mikor hívódik meg. Az utolsó függvényed is lebeg a semmiben.

2020. febr. 2. 09:12
Hasznos számodra ez a válasz?
 7/13 anonim ***** válasza:

#6: Persze lehet kötözködni, de elég valószínű, hogy egy System.ComponentModel.BackgroundWorker típusú objektumról van szó. Illetve az utolsó függvény nagyon valószínű, hogy ennek az objektumnak a RunWorkerCompleted eseményére van felíratkozva:)


Kérdező: Ne a Processben íratkorr fel, hanem az után, hogy létrehozod az objektumot. (Pl konstruktorban?)

2020. febr. 2. 10:19
Hasznos számodra ez a válasz?
 8/13 A kérdező kommentje:
köszönöm szépen! :)) végre működik :D
2020. febr. 2. 10:34
 9/13 anonim ***** válasza:
Még mindig nem értem, miért szívatjátok magatokat a BackgroundWorker-rel, amikor már van async-await...
2020. febr. 2. 13:26
Hasznos számodra ez a válasz?
 10/13 A kérdező kommentje:
Sajnos, azt nem nagyon ismerem.Nem tudom, hogy kell használni.
2020. febr. 2. 14:20
1 2

Kapcsolódó kérdések:





Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu

A weboldalon megjelenő anyagok nem minősülnek szerkesztői tartalomnak, előzetes ellenőrzésen nem esnek át, az üzemeltető véleményét nem tükrözik.
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!