Partilhar via


Evitando áreas de problemas com programas com vários threads

Há vários problemas que podem ser encontrados em Criando, vinculando ou um programa em C com vários threads em execução.Alguns dos problemas mais comuns são descritos na tabela a seguir.(Para uma discussão semelhante sobre do ponto de vista do MFC, consulte Multithreading: De dicas de programação.)

Problema

Causa provável

Você obtém uma caixa de mensagem mostrando que o programa causou uma violação de proteção.

Muitos erros de programação do Win32 causam violações da proteção.Uma causa comum de violações da proteção é a atribuição indireta de dados para ponteiros nulo.Porque isso resultados em seu programa tentar acessar a memória que não pertence a ele, uma violação de proteção é emitida.

Uma maneira fácil para detectar a causa uma violação de proteção é compilar seu programa com as informações de depuração e, em seguida, executá-lo por meio do depurador no ambiente do Visual C++.Quando ocorre falha de proteção, Windows transfere o controle para o depurador e o cursor é posicionado sobre a linha que causou o problema.

O programa gera diversos erros de compilar e vínculo.

Você pode eliminar muitos problemas potenciais, definindo o nível de aviso do compilador para um dos seus valores mais altos e heeding as mensagens de aviso.Usando o nível 3 ou nível 4 opções de nível de aviso, você pode detectar as conversões de dados não-intencional, faltando protótipos de função e uso de recursos não-ANSI.

Consulte também

Conceitos

Multithreading com C e Win32