Nota
O acesso a esta página requer autorização. Podes tentar iniciar sessão ou mudar de diretório.
O acesso a esta página requer autorização. Podes tentar mudar de diretório.
[O recurso associado a esta página, DirectShow, é um recurso herdado. Ele foi substituído por MediaPlayer, IMFMediaEngine e Captura de Áudio/Vídeo na Media Foundation. Esses recursos foram otimizados para Windows 10 e Windows 11. A Microsoft recomenda fortemente que o novo código use MediaPlayer, IMFMediaEngine e Captura de Áudio/Vídeo no Media Foundation em vez de DirectShow, quando possível. A Microsoft sugere que o código existente que usa as APIs herdadas seja reescrito para usar as novas APIs, se possível.]
A CAMSchedule classe implementa um agendador para relógios de referência.
| Métodos públicos | Descrição |
|---|---|
| Camschedule | Método de construtor. |
| ~Camschedule | Método destruidor. Virtual. |
| GetAdviseCount | Recupera o número de solicitações de consultoria pendentes. |
| GetNextAdviseTime | Recupera a hora da próxima solicitação de aconselhamento. |
| AddAdvisePacket | Adiciona uma solicitação de aconselhamento à lista de solicitações pendentes. |
| Unadvise | Remove uma solicitação de aconselhamento. |
| Aconselhar | Despacha todas as solicitações agendadas para uma hora especificada ou anterior. |
| Getevent | Recupera um identificador de evento, que é usado para sinalizar uma alteração na próxima hora de aconselhamento. |
Comentários
Esse objeto auxiliar mantém uma lista de solicitações de aconselhamento para um relógio de referência. A classe CBaseReferenceClock a usa para ajudar a agendar solicitações de aconselhamento. Os relógios usam esse objeto da seguinte maneira:
- O relógio cria um thread de trabalho para lidar com o agendamento.
- O thread de trabalho chama o método CAMSchedule::GetEvent para recuperar um identificador de evento do agendador. Ele aguarda esse evento, inicialmente com um tempo limite infinito.
- Para agendar uma nova solicitação de aconselhamento, o relógio chama o método CAMSchedule::AddAdvisePacket . Uma solicitação de aconselhamento pode ser única ou periódica. O agendador mantém a lista de solicitações em ordem de tempo.
- Se uma solicitação for adicionada à frente da lista, o agendador sinalizará o evento. (A lista está vazia no início, portanto, a primeira solicitação é garantida para sinalizar o evento.)
- Quando o evento é sinalizado, o thread de trabalho chama o método CAMSchedule::Advise , especificando a hora de referência atual. Se alguma solicitação pendente tiver expirado, o agendador as enviará.
- O método Advise retorna a hora da próxima solicitação. O thread de trabalho usa esse valor para calcular um novo valor de tempo limite.
- As etapas 2 6 se repetem indefinidamente.
- Para encerrar o thread de trabalho, o relógio define um sinalizador interno e sinaliza o evento.
Na etapa 2, o evento é sinalizado ou a espera atinge o tempo limite. Se o evento for sinalizado, isso significa que uma nova solicitação foi adicionada à frente da lista. O thread de trabalho deve calcular um novo valor de tempo limite. Por outro lado, se a espera atingir o tempo limite, isso significa que uma solicitação de aconselhamento chegou e deve ser expedida. A chamada para Aconselhar na etapa 5 manipula os dois casos.
Requisitos
| Requisito | Valor |
|---|---|
| parâmetro |
|
| Biblioteca |
|