C#, miért történik meg egyre ritkábban az értékadá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?
rendben, köszönöm,
van valami ötleted esetleg, hogy tudnám kiküszöbölni a problémát?
É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.
#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?)
Kapcsolódó kérdések:
Minden jog fenntartva © 2025, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!