CORRECÇÃO: Quando um aplicativo com base do .NET Framework usa a classe System.Threading.Timer, o evento timer pode não ser sinalizado no .NET Framework 1.1 SP1

Traduções deste artigo Traduções deste artigo
ID do artigo: 900822 - Exibir os produtos aos quais esse artigo se aplica.
Expandir tudo | Recolher tudo

Sintomas

Quando um aplicativo gerenciado do Microsoft .NET Framework usa a classe System.Threading.Timer no Microsoft .NET Framework 1.1 Service Pack 1 (SP1), o evento timer não pode ser sinalizado. Normalmente, esse problema ocorre se o computador que esteja executando o aplicativo está sob uma carga pesada ou se estiverem executando o muitos objetos de timer.

Resolução

Informações sobre o hotfix



Um hotfix suportado está disponível no Microsoft. No entanto, esse hotfix destina-se a corrigir o problema descrito neste artigo. Aplique-o somente aos sistemas que apresentarem esse problema específico. Esta correcção poderá submetida a testes adicionais. Portanto, se você não tiver sido gravemente afetado por esse problema, recomendamos que você aguarde a próxima atualização de software que contém esse hotfix.

Para baixar esse hotfix a partir do MSDN Code Gallery, visite o seguinte site da Microsoft:
http://code.msdn.microsoft.com/KB900822

Observação MSDN Code Gallery exibe os idiomas para os quais o hotfix está disponível. Se você não vir seu idioma listado, é porque a página de recursos da Galeria de código não está disponível para esse idioma.

Observação Se ocorrerem problemas adicionais ou se qualquer solução de problemas é necessária, talvez você precise criar uma solicitação de serviço separada. Os custos normais de suporte serão aplicados a questões de suporte adicionais e problemas que não se qualificam para esse hotfix específico. Para obter uma lista completa de números de telefone de suporte e Atendimento Microsoft ou para criar uma solicitação de serviço separada, visite o seguinte site:
http://support.microsoft.com/contactus/?ws=support

Pré-requisitos

Microsoft .NET framework 1.1 SP1

Requisitos de reinicialização

Não é necessário reiniciar o computador após aplicar essa atualização de software.

Informações sobre substituição de atualização de software

Esta atualização de software não substitui outras atualizações de software.

Informações sobre o arquivo

A versão em inglês desta atualização de software apresenta os atributos de arquivo (ou atributos de arquivo posteriores) listados na tabela a seguir. As datas e horas desses arquivos estão listadas no horário de universal coordenado (UTC). Quando você exibe as informações do arquivo, ele é convertido para a hora local. Para encontrar a diferença entre o UTC e a hora local, use a guia fuso horário na ferramenta Data e hora no painel de controle.
   Date         Time   Version        Size       File name
   ----------------------------------------------------------
   09-Jun-2005  05:46  1.1.4322.2331  2,138,112  Mscorlib.dll
   09-Jun-2005  05:48                    10,908  Mscorlib.ldo
   09-Jun-2005  05:56  1.1.4322.2331  2,519,040  Mscorsvr.dll
   09-Jun-2005  05:57  1.1.4322.2331  2,506,752  Mscorwks.dll

Situação

A Microsoft confirmou que este é um problema nos produtos da Microsoft listados na seção "Aplica-se a".

Mais Informações

As classes Timer são implementadas como uma lista vinculada de objetos de timer. Quando o primeiro objeto System.Threading.Timer é criado, o Gerenciador de pool de threads inicia um thread para processar a lista vinculada. Cada objeto de timer é adicionado à lista vinculada. O thread que processar a lista vinculada percorre a lista vinculada e determina quando o evento timer deve ser sinalizado contra a contagem atual do relógio.

Se o objeto de timer expirar, o thread assincronamente filas uma função de retorno de chamada antes que o thread atualiza a hora em que o evento timer deve ser sinalizado. Depois do thread tiver processado todos os objetos de timer na lista vinculada, o thread atualiza o tempo que a lista vinculada foi processada pela última vez. Em seguida, o thread calcula o menor tempo que o thread deve dormir antes do segmento reprocessa lista vinculada para o próximo objeto de timer decorrido.

Às vezes, quando o sistema está em destaque ou quando a lista vinculada inclui muitos objetos de timer, o thread de processamento pode ser garantido por um thread prioridade maior antes todo vinculado lista foi processada. Quando esse comportamento ocorre, o tempo que um evento do timer próxima deve ser sinalizado é calculado a serem anteriores o carimbo de data/hora quando a lista vinculada foi processada pela última vez. Portanto, o tempo que o evento timer deve ser sinalizado está no passado e nunca expira.

Como a hora em que o evento timer deve ser sinalizado já tiver passado, o thread pode calcular um ponto negativo para aguardar antes que o evento timer deve ser sinalizado. Quando o thread tem um ponto negativo para esperar, o thread insere um estado de suspensão por um longo tempo.
Para obter mais informações, clique no número abaixo para ler o artigo na Base de dados de Conhecimento da Microsoft:
824684Descrição da terminologia padrão que é usada para descrever as atualizações de software

Propriedades

ID do artigo: 900822 - Última revisão: segunda-feira, 3 de dezembro de 2007 - Revisão: 2.12
A informação contida neste artigo aplica-se a:
  • Microsoft .NET Framework 1.1 Service Pack 1
Palavras-chave: 
kbmt kbwinserv2003sp2fix kbfix kbbug kbpubtypekc kbqfe KB900822 KbMtpt
Tradução automática
IMPORTANTE: Este artigo foi traduzido por um sistema de tradução automática (também designado por Machine Translation ou MT), não tendo sido portanto traduzido ou revisto por pessoas. A Microsoft possui artigos traduzidos por aplicações (MT) e artigos traduzidos por tradutores profissionais, com o objetivo de oferecer em português a totalidade dos artigos existentes na base de dados de suporte. No entanto, a tradução automática não é sempre perfeita, podendo conter erros de vocabulário, sintaxe ou gramática. A Microsoft não é responsável por incoerências, erros ou prejuízos ocorridos em decorrência da utilização dos artigos MT por parte dos nossos clientes. A Microsoft realiza atualizações freqüentes ao software de tradução automática (MT). Obrigado.
Clique aqui para ver a versão em Inglês deste artigo: 900822

Submeter comentários

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com