Discussão do artigo "Simulação de mercado (Parte 13): Sockets (VII)"

 

Novo artigo Simulação de mercado (Parte 13): Sockets (VII) foi publicado:

Quando você desenvolve algo, seja no xlwings, ou qualquer outro pacote que nos permita ler e escrever diretamente no Excel. Você na verdade deve notar que todos os programas, funções ou procedimentos. Executam e logo finalizam a sua tarefa. Eles não ficam ali, dentro de um loop. E por mais que você tente fazer as coisas de uma forma diferente. 

No artigo anterior Simulação de mercado (Parte 12): Sockets (VI), fizemos um servidor em Python que seria capaz de responder a diversos clientes. Este funcionava devido ao uso de threads. Acredito que foi passado a ideia básica de como uma thread funciona. Mas principalmente, espero que você caro leitor, tenha conseguido entender como um servidor, consegue de alguma maneira, fazer um mini chat funcionar. A ideia base destas explicações sobre soquetes, não visa de fato ensinar tudo sobre eles. O que queremos e precisamos é que você, caro leitor entenda como os soquetes funcionam. Isto por que este conhecimento será necessário depois, aqui no replay/simulador.

Mas apesar do servidor em Python, estar funcionando, a fim de que diversos clientes consigam ser mantidos por ele. Ele não está de fato adequado para que o usemos no Excel. Ou melhor dizendo, se você usar o xlwings para colocar este servidor no Excel, você terá problemas, com relação a interação com o Excel. Mas por que, se estamos usando threads a fim de não bloquear a execução do código?

Aqui mora uma questão um pouco complicada de ser observada e notada. Bem, pelo menos para quem tem menos experiência no que rege um programa usar outro que não faz parte dele. Esta frase talvez ficou complicada. Mas vamos tentar entendê-la. Quando usamos um script em VBA, isto dentro do Excel. Estamos na verdade rodando um programa. Ok, se este script, chamar alguma outra aplicação, muitas das vezes, ele irá de fato fazer com que o Excel, espere a aplicação terminar. Mas isto não é sempre. Para que o Excel, não precise esperar a aplicação terminar. Você pode usar uma aplicação que não se ligue de fato ao Excel. Ou seja, você terá o Excel aberto, ao mesmo tempo uma outra aplicação que foi aberta pelo VBA. Ambos podem conviver sem competir pela CPU. Seria mais ou menos você pedir ao Excel para abrir o Word. Não importa se o Word ficar ali parado. Ele não irá interferir com o Excel.

Autor: Daniel Jose

 
Agradecimentos