Compartilhar via


Evitar áreas com problemas com programas Multithread

Há vários problemas que podem ser encontrados na criação, vinculação ou executar um programa em c multithread. Alguns dos problemas mais comuns são descritas na tabela a seguir. (Para uma discussão semelhante do ponto de vista do MFC, consulte Multithreading: Dicas de programação.)

Problem

Causa provável

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

Muitos erros de programação do Win32 causam violações de proteção. Uma causa comum de violações de proteção é a atribuição indireta de dados para ponteiros nulos. Porque isso resulta 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 de detectar a causa uma violação de proteção é compilar seu programa com informações de depuração e execute-o por meio do depurador no ambiente do Visual C++. Quando ocorre a falha de proteção, o Windows transfere o controle para o depurador e o cursor está posicionado na linha que causou o problema.

O programa gera diversos erros de compilação e o link.

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

Consulte também

Conceitos

Multithreading com c e Win32