Re: Проблемы с потоками.
От: HiSH Россия http://m0riarty.ya.ru
Дата: 10.10.05 14:05
Оценка:
Здравствуйте, MusicWriter, Вы писали:

MW>Обновляю изображение в цикле


MW>

MW>for (int i = 0; i < 5000; i++)
MW>{
MW>// Вывожу изображение.
MW>//Затем запускаю отдельным потоком проигрывание музыки. Правильно ли я делаю???
MW>CWinThread* pPlaySoundThread = AfxBeginThread(PlayAlertSoundThread,
MW>    AfxGetMainWnd()->GetSafeHwnd(), THREAD_PRIORITY_NORMAL);

MW>}

MW>


MW>Как это сделать правильно?


MW>При такой реализации комп сильно тормозит. Видимо создаётся много потоков и всё не успевают обрабатываться. Может их как-то грохать надо а?


Видимо, так и есть — 5000 потоков — не шутка . Я бы:
  1. Сделал поток, который отвечает за проигрывание музыки отдельно. Когда нужно ее проиграть, посылал бы ему сообщение (SendMessage/PostMessage/объекты ядра)
  2. Если все-таки тебе охота в отдельных потоках играть звуки, использовал бы потоковый кэш — может помочь
  3. Хм... А как вообще должно выглядеть то, что ты хочешь сделать? Если изображения выводятся очень быстро, то будет 5000 обновременно играющих звуков — это ли нужно?
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.