обращение к объекту из потока

  • Автор темы Автор темы umkasumka
  • Дата начала Дата начала
Статус
Закрыто для дальнейших ответов.
U

umkasumka

Доброго времени суток уважаемые.
Есть форма, в ней есть обьект TMediaPlayer *Player, есть метод который работает с этим плеером:
Код:
void __fastcall TForm1::Play(AnsiString nazvanie)
{
Player->FileName = nazvanie;
Player->Open();
Player->Play();
}
Если я вызываю этот метод с одной мелодией, а вслед за этим еще раз его же, но уже с другой, то поигрываеться мелодия которая была вызвана второй. Такое звучанее мне и требуеться.
Ежели я вызываю вторую мелодию через поток, у меня звучат паралельно сразу две мелодии, и первая и вторая. Видимо происходит пересоздание обьекта плеер для потока. Как этого избежать?
Заранее благодарен.
 
Обеспечить синхронизацию потоков. Если поток создается средствами Borland (TThread), то использовать методы Synchronize (для синхронизации с основным потоком) или WaitFor, также возможно Resume и Suspend. Если поток создается на API (CreateThread), то использовать события (CreateEvent) или мутексы (CreateMutex) + WaitForSingleObject.
 
Я вот только не могу понять для чего понадобилось делать более одного потока? Чем вызвано такое решение? Что делают эти потоки, кроме того, что запускают воспроизведение?
 
Зубру пасиб, я так и делал, тока немного не правильно, использовал потоки Борлонда.
Это на самом деле пример, прога достаточно большая, в основе это большой муз плеер, а в потоке это опрос с ком порта. Пасиб за участие.
 
Статус
Закрыто для дальнейших ответов.
Мы в соцсетях:

Обучение наступательной кибербезопасности в игровой форме. Начать игру!