forum.boolean.name

forum.boolean.name (http://forum.boolean.name/index.php)
-   С# (http://forum.boolean.name/forumdisplay.php?f=128)
-   -   ThreadPool (http://forum.boolean.name/showthread.php?t=11854)

Dream 05.02.2010 19:58

ThreadPool
 
Вопрос значит таковой
производится загрузка текстур в отдельных потоках, после завершения загрузки поток вызывает метод, который сообщает что загрузка текстуры прошла успешно. этот метод суммирует количество полученных сообщений о загрузке. и если загружены все текстуры из списке происходит переход на другой экран.
Проблема: иногда (1:10) счётчик не недосчитывается одной текстуры.
еслибы текстуры нельзя было загрузить, выдалась бы ошибка в рантайме.
но ошибок нет. просто счётчик показывает что не загрузилась одна(1) текстура.
С чем связана проблема? можно ли модифицировать одну переменную разными потоками?

jimon 05.02.2010 20:00

Ответ: ThreadPool
 
DimasSup
операция изменения должна быть атомарной

Dream 05.02.2010 20:03

Ответ: ThreadPool
 
Должна быть или есть?:)

jimon 05.02.2010 21:38

Ответ: ThreadPool
 
DimasSup
должна или поставь мютекс, может компилятор за тебя еще программу писать будет ?

Dream 06.02.2010 00:00

Ответ: ThreadPool
 
я был бы конечно рад, если бы так можно было:))) но и самому интересно:) вообщем уже разобрался. как "мьютекс" в шарпе врубать? и есть ли там такое?
я зделал другим способом, более практичным и правильным как оказалось

pax 08.02.2010 15:50

Ответ: ThreadPool
 
а lock не помогает?

Dream 08.02.2010 16:47

Ответ: ThreadPool
 
да, можно было сделать так)) но я отказался от реализации с использованием такой структуры кода. сделал через ожидание выполнения потоков)))


Часовой пояс GMT +4, время: 14:57.

vBulletin® Version 3.6.5.
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Перевод: zCarot