CORRECÇÃO: Quando uma aplicação do .NET Framework com utiliza a classe System.Threading.Timer, o evento de temporizador poderá não ser assinalado no .NET Framework 1.1 SP1

Traduções de Artigos Traduções de Artigos
Artigo: 900822 - Ver produtos para os quais este artigo se aplica.
Expandir tudo | Reduzir tudo

Sintomas

Quando uma aplicação do Microsoft .NET Framework gerida utiliza a classe System.Threading.Timer no Microsoft .NET Framework 1.1 Service Pack 1 (SP1), o evento de temporizador não pode ser assinalado. Normalmente, este problema ocorre se o computador que está a executar a aplicação é numa carga elevada ou se muitos objectos de temporizador em execução.

Resolução

Informações sobre a correcção



Está disponível a partir da Microsoft uma correcção suportada. No entanto, esta correcção destina-se a corrigir o problema descrito neste artigo. Aplique esta correcção apenas em sistemas que tenham este problema específico. Esta correcção poderá submetida a testes adicionais. Por conseguinte, se não estiver a ser gravemente afectado por este problema, recomendamos que aguarde pela próxima actualização de software que contenha esta correcção.

Para transferir esta correcção da Galeria de código da MSDN, visite o seguinte Web site da Microsoft:
http://code.msdn.microsoft.com/KB900822

Nota A Galeria de código da MSDN apresenta os idiomas para a qual a correcção está disponível. Se não vir o idioma listado, é porque a página de recursos de galeria de código não está disponível para esse idioma.

Nota Se ocorram problemas adicionais ou se for necessária qualquer resolução de problemas, poderá ter de criar um pedido de assistência separado. Os custos normais do suporte serão aplicados a problemas adicionais e questões de suporte que não se enquadrem esta correcção específica. Para obter uma lista completa dos números de telefone do suporte de cliente do Microsoft ou para criar um pedido serviço separado, visite o seguinte Web site da Microsoft:
http://support.microsoft.com/contactus/?ws=support

Pré-requisitos

Microsoft .NET framework 1.1 SP1

Requisito de reinício

Não é necessário reiniciar o computador depois de aplicar esta actualização de software.

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

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

Informações do ficheiro

A versão inglesa desta actualização de software tem os atributos de ficheiro (ou atributos de ficheiro posteriores) listados na seguinte tabela. As datas e horas destes ficheiros são indicadas na hora universal coordenada (UTC). Quando visualiza as informações do ficheiro, é convertido para a hora local. Para determinar a diferença entre a UTC e a hora local, utilize o separador fuso horário na ferramenta Data e hora no painel de controlo.
   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

Ponto Da Situação

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

Mais Informação

As classes de temporizador são implementadas como uma lista ligada do temporizador de objectos. Quando o primeiro objecto System.Threading.Timer é criado, o Gestor de conjunto de threads inicia um thread para processar a lista ligada. Cada objecto temporizador é adicionado à lista ligada. O thread que processa a lista ligada percorre a lista ligada e determina quando o evento de temporizador deve ser assinalado com a contagem de relógio actual.

Se o objecto temporizador tiver expirado, o thread filas assincronamente uma função de chamada de retorno antes do thread actualiza o tempo que o evento de temporizador deve ser assinalado. Depois do thread tenha processado todos os objectos de temporizador na lista de ligado, o thread actualiza o tempo que lista ligada do último foi processada. Em seguida, o thread calcula o tempo mais curto que o thread deve modo de suspensão antes do thread reprocessamento lista ligada para o seguinte objecto temporizador decorrido.

Por vezes, quando o sistema está em extremas ou quando a lista ligada inclui muitos objectos de temporizador, o thread de processamento pode ser pre-empted por um thread de prioridade mais elevada antes de que ligados de todo o lista foi processada. Quando este comportamento ocorre, o tempo que um evento de temporizador seguinte deve ser assinalado é calculado de ser anterior a hora quando lista ligada do último foi processada. Por conseguinte, o tempo que o evento de temporizador deve ser assinalado está no passado e nunca expira.

Uma vez que já tenha passado o tempo que o evento de temporizador deve ser assinalado, o thread poderá calcular um ponto negativo para aguardar antes do evento de temporizador tem de ser sinalizado. Quando o thread tem um ponto negativo para aguardar, o thread introduz um estado de suspensão durante um longo período de tempo.
Para obter mais informações, clique no número de artigo que se segue para visualizar o artigo na Microsoft Knowledge Base:
824684Descrição da terminologia padrão utilizada para descrever actualizações de software da Microsoft

Propriedades

Artigo: 900822 - Última revisão: 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 revisto ou traduzido por humanos. A Microsoft tem artigos traduzidos por aplicações (MT) e artigos traduzidos por tradutores profissionais. O objectivo é simples: oferecer em Português a totalidade dos artigos existentes na base de dados do suporte. Sabemos no entanto que a tradução automática não é sempre perfeita. Esta pode conter erros de vocabulário, sintaxe ou gramática? erros semelhantes aos que um estrangeiro realiza ao falar em Português. A Microsoft não é responsável por incoerências, erros ou estragos realizados na sequência da utilização dos artigos MT por parte dos nossos clientes. A Microsoft realiza actualizações frequentes 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