|
BackgroundWorker и ManualResetEvent
|
|||
---|---|---|---|
#18+
Вообще суть задачи такая. В одном методе последовательно выполняются две долгих функции. Общее у них один двумерный массив, из которого они только читают. В целом говоря, ничего общего они не записывают, и возвращают каждая свой результат. Вот подумал унести одну из них в поток дабы ускорить процесс. Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26.
Некоторые параметры переименовал, но в целом то понятно :) Проблема такая, <код дальше> начинает выполняться когда я делаю Set(). Это понятно. Вот только bw_RunWorkerCompleted срабатывает уже после того. А это значит что в переменной result у меня null, а я хочу туда результат выполнения функции в потоке. То есть как мне переделать код, чтобы result= (Result)e.Result; точно выполнилось до первой строки после WaitOne() ? ... |
|||
:
Нравится:
Не нравится:
|
|||
19.03.2013, 18:37 |
|
BackgroundWorker и ManualResetEvent
|
|||
---|---|---|---|
#18+
.NET 2.0 если что. Или на BackgroundWorker надо забить в этом случае ? И сделать на обычных Thread ? ... |
|||
:
Нравится:
Не нравится:
|
|||
19.03.2013, 18:41 |
|
|
start [/forum/topic.php?fid=20&fpage=171&tid=1404997]: |
0ms |
get settings: |
9ms |
get forum list: |
13ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
80ms |
get topic data: |
20ms |
get forum data: |
2ms |
get page messages: |
33ms |
get tp. blocked users: |
2ms |
others: | 307ms |
total: | 474ms |
0 / 0 |