|
BackgroundWorker и Commands
|
|||
---|---|---|---|
#18+
Добрый день. Помогите разобраться с проблемой. К кнопке на форме привязана команда запускающая bgWorker. Вопрос: почему НЕ ВСЕГДА запускается bgWorker. code: public ICommand StartProgressCommand { /// runMethod = new Commands.DelegateCommand(RunProgress, CanRunProgress); /// } private void RunProgress() { PrgBarValue = 0; bgWorker = new BackgroundWorker(); bgWorker.WorkerReportsProgress = true; bgWorker.WorkerSupportsCancellation = true; bgWorker.RunWorkerAsync(new Models.CulcInput(int.Parse(ValueX), int.Parse(ValueY))); bgWorker.DoWork += new DoWorkEventHandler(bgWorker_DoWork); bgWorker.ProgressChanged += new ProgressChangedEventHandler(bgWorker_ProgressChanged); bgWorker.RunWorkerCompleted += new RunWorkerCompletedEventHandler(bgWorker_RunWorkerCompleted); } void bgWorker_DoWork(object sender, DoWorkEventArgs e) { Models.CulcInput input = (Models.CulcInput)e.Argument; for (int i = 1; i <=100; i++) { Thread.Sleep(5); bgWorker.ReportProgress(i); if (bgWorker.CancellationPending) { e.Cancel = true; return; } } e.Result = input._x + input._y; ++Test; // считает сколько раз вызвался метод bgWorker_DoWork } и вешаю счетчик на нажатие кнопки вызова команды. через несколько вызовов счетчик на кнопке и счетчик вызова метода bgWorker_DoWork показывают разные результаты. На кнопке увеличивается а счетчик метода нет. Получается что при нажатии на кнопку поток bgWorker не запускаеться. Кто может объясните что происходит с bgWorker!? ... |
|||
:
Нравится:
Не нравится:
|
|||
05.01.2012, 11:19 |
|
|
start [/forum/topic.php?fid=21&msg=37603373&tid=1441992]: |
0ms |
get settings: |
11ms |
get forum list: |
15ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
31ms |
get topic data: |
10ms |
get forum data: |
2ms |
get page messages: |
53ms |
get tp. blocked users: |
2ms |
others: | 16ms |
total: | 146ms |
0 / 0 |