Select the product you need help with
Threading problemas com componentes ActiveX do Visual Basic 6.0ID do artigo: 241896 - Exibir os produtos aos quais esse artigo se aplica. Nesta páginaSintomasAo usar componentes ActiveX do Visual Basic 6.0 em um ambiente multithread, você deve estar ciente dos possíveis problemas a seguir: DLL ActiveX hospedado em um cliente multithread
Observação Anterior ao Service Pack 3 para Visual Studio 6.0, era possível obter um antivírus durante o processo de desligamento com reter na memória ativada. Isso foi corrigido no Visual Studio 6.0 service pack mais recente: http://msdn2.microsoft.com/en-us/vstudio/aa718364.aspx'
(http://msdn2.microsoft.com/en-us/vstudio/aa718364.aspx)
Se um projeto UserControl ou ActiveX DLL contém declarações de API, você pode enfrentar travamentos durante o processo/thread desligar ou criação do objeto, mesmo se a caixa de seleção Unattended Execution tem sido selecionado no caso de uma DLL ActiveX. Para solucionar esse problema, você pode usar uma biblioteca de tipos em vez de Declare no Visual Basic. Para obter informações adicionais sobre como usar uma biblioteca de tipos, clique no número % 2 abaixo para ler o artigo % 2 na Base de dados de Conhecimento da Microsoft: 189133
(http://support.microsoft.com/kb/189133/EN-US/
)
COMO: Criar DLL C mais acessíveis para VB com uma biblioteca de tipos EXE ActiveX acessados por um cliente multithread ou por vários única ou várias threaded clientesErro de tempo de execução '7': memória insuficiente e às vezes seguido por um erro de operação do disco. Erro em tempo de execução '430': classe não oferece suporte automação ou suporte para interface esperada. Erro em tempo de execução '424': objeto necessário. Erro em tempo de execução '-2147023170 (800706be)': erro de automação. A chamada de procedimento remoto falhou. Erro em tempo de execução '-2147287010 (8003001e)': erro de automação. Este é um "Ocorreu um erro de disco durante uma operação de leitura." com base em ErrLook. Processos do servidor adicionais (ThreadTest.EXE) são criados, mesmo que a propriedade Instancing de Class1 está marcado como MultiUse. SituaçãoEsse comportamento é por design.No Visual Studio 6 Service Pack 5, se um projeto contiver qualquer classe pública que possui MTSTransactionMode conjunto para algo diferente de 0 , a opção Unattended Execution e Manter na memória opção são automaticamente selecionada. Mais InformaçõesEtapas para reproduzir o comportamentoO servidor de criação A:
B: criar o cliente e testar
C: implementar a solução alternativa
Não use a propriedade Instancing GlobalMultiUse para uma classe quando você pretende usar o componente ActiveX em MTS ou COM +. A interface para o objeto GlobalMultiUse é armazenados em cache um por tabela baseada em thread e não é liberado até que o thread seja encerrado. Como resultado, se uma chamada vem com um contexto diferente (embora no mesmo thread), ele falhará com RPC_E_WRONG_THREAD. Para usar componentes no MTS e COM +, você deve projetar suas classes de tal forma que os objetos são sem monitoração de estado. PropriedadesID do artigo: 241896 - Última revisão: terça-feira, 7 de agosto de 2007 - Revisão: 5.2 A informação contida neste artigo aplica-se a:
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: 241896
(http://support.microsoft.com/kb/241896/en-us/
)
| Traduções deste artigo
|




Voltar para o início








