none
Fila de Callbacks RRS feed

  • Pergunta

  • Boa tarde,

    Eu tenho um WCF com vários métodos que eu consumo em uma aplicação Silverlight MVVM.

    Eu tenho duas VM Class, a VMHeader e a VMItens, quando minha view inicia eu mando as VMs carregarem.

    Cada VM chama um método do WCF (LoadHeaderAsync e LoadItensAsync) e no evento Complete destes métodos eu alimento as properties da VM, fazendo o bind do Silverlight...

    Para complicar um pouco mais, eu tenho um Timer que chama outro método (GetMessagesAsync) do mesmo WCF mas em outra classe e outra Thread e tem seu Complete também.

    Após ter varios problemas de performace, eu percebi que os retornos não são assíncronos, quando é chamado os 3 métodos, o WCF só executa o segundo quando o primeiro retorna e assim por diante.

    O que acontece é que o método das mensagens demora quase um minuto para executar, ele não é essencial para a aplicação, só exibe um alerta caso ele ache alguma coisa.

    Com isso a view demora muito para carregar, atualiza ou navegar para outra view enquanto a busca por mensagens esta ocorrendo.

    Fiz um teste com 3 métodos com sleeps de 5, 10 e 30. Ao executar eles, a ordem de retorno não é obedecida se ele retornar 30, 5 e 10, o primeiro retorna em 30 segundos, o segundo em 35 e o ultimo em 45... o que prova que ele só executa um por vez, e não retorna em 5, 10 e 30 independente da ordem chamada. 

    Ja li muita coisa sobre ServiceBehavior CallbackBehavior mas não funcionou.

    Gostaria de saber se alguém ja passou por algo parecido.

    Att
    Tiago


    Att, Tiago

    quarta-feira, 20 de novembro de 2013 18:22