none
Problemas ao dar vários WebRequest.GetResponse (travando aplicação) RRS feed

  • Pergunta

  • Tenho um dispositivo de áudio que me comunico via rede pelo protocolo HTTP. Para a mudança do volume por exemplo, eu estou usando o slider, no value changed do slider eu aumento o volume fazendo um GET usando o WebRequest.GetResponse, o problema é que se eu fizer várias requisições, tipo, mudar de música ou aumentar o volume com o slider, a aplicação trava. Alguém tem idéia de como resolver esse problema (travadas)?
    quarta-feira, 9 de novembro de 2011 12:09

Respostas

  • Bom dia Vinicius,

    acredito que seu problema ocorre pois você está trabalhando de forma síncrona, logo suas requisições usando o GetResponse estão sendo enfileiradas.

    O objeto HttpWebRequest realizava chamadas assíncronas internamente na versão 1.1 do Framework .NET, mas devido a um problema constante com deadlocks, o mesmo foi modificado a partir da versão 2.0 para fazer somente chamadas verdadeiramente síncronas.

    O que sugiro a você é deixar de utilizar o HttpWebRequest e passar a utilizar Sockets, onde você poderá trabalhar de forma assíncrona.

    Tive um problema parecido criando um WebCrawler quando estava na faculdade, e resolvi desta forma.

    Seguem dois links interessantes:

    http://msdn.microsoft.com/en-us/magazine/cc163880.aspx

    http://www.codeproject.com/KB/IP/Crawler.aspx

    Abraços,


    Daniel Cheida de Oliveira
    • Sugerido como Resposta Daniel Cheida quarta-feira, 9 de novembro de 2011 13:12
    • Marcado como Resposta Vinícius Ottoni quinta-feira, 10 de novembro de 2011 14:39
    quarta-feira, 9 de novembro de 2011 13:12