Avançar para o conteúdo principal

Mensagens

A mostrar mensagens de março, 2012

Concorrência parte II

Continuando o assunto das THREADS ... Durante a execução de threads pode ser necessário garantir que uma thread conclua a sua tarefa para que outra possa continuar. Isso é possível com recurso ao método Join da classe Thread, chamando este método pára a execução da thread corrente, ou seja, a thread que chamou o método, até que termine a thread sobre a qual se chamou o método. Por vezes este método pode provocar resultados inesperados especialmente se chamado a partir da thread principal do programa uma vez que a interface deixa de responder, incluindo os próprios timers. Neste programa o botão Iniciar demo corre o seguinte código:             obj_teste = new teste(); //objecto com código da thread                          thr_teste = new Thread(new ThreadStart(obj_teste.executa));  //nova thread criada                         this.timer1.Enabled = true;  //activar o timer para ver o estado da thread             //vamos iniciar a thread             thr_teste.Start();                  

Concorrência

Na era dos processadores multicore a execução concorrente faz cada fez mais sentido, de que serve ter um processador com 8 núcleos se os nossos programas só correm uma tarefa de cada vez, ocupando assim um só núcleo. Cada vez mais é necessário pensar os programas como pequenas tarefas e quando possível executar essas tarefas concorrentemente, ou seja, em simultâneo, porquê esperar que o disco guarde os dados quando podemos criar um thread que executa a tarefa sem interromper a interface. A classe THREAD é, na plataforma .NET, o ponto de partida para a execução concorrente. Com esta classe é possível definir prioridades de execução, pausar e retomar as threads bem como sincronizar diferentes threads entre si, criando relações de execução entre diferentes processos. Para criar uma nova thread na plataforma .NET o programador precisa de ter uma classe com um método que não possua parâmetros de entrada e que devolva void, ou seja não devolve nada. É este método que será executado quando a

Encriptar e Desencriptar

Com o .Net podemos facilmente codificar e descodificar mensagens através do namespace Cryptography. Neste post vamos estudar um programa que encripta um texto com base numa palavra passe e posteriormente descodifica a mensagem. Começamos por criar uma função para encriptar: string codifica(string mensagem, string ppasse) {   //este vector vai ficar com a mensagem encriptada   byte [] mensagem_codificada;  //vamos utilizar codificação UTF8   System.Text.UTF8Encoding UTF8 = new System.Text.UTF8Encoding();   // Vamos utilizar o algoritmo MD5 para fazer o Hash da palavra passe   MD5CryptoServiceProvider HashProvider = new MD5CryptoServiceProvider();   //Agora podemos então fazer o hash da palavra passe   byte[] TDESChave = HashProvider.ComputeHash(UTF8.GetBytes(ppasse));   //De seguida vamos escolher o algoritmo de encriptação   TripleDESCryptoServiceProvider TDESAlgoritmo = new TripleDESCryptoServiceProvider();   //Configuração do algoritmo   TDESAlgoritmo.Key = TDESChave;   TDESAlgoritmo

XML - RSS Reader em VB.Net

No seguimento dos dois post anteriores vamos agora criar um RSS Reader com o Visual Basic 2010. A interface será assim Componentes: um TableLayoutPanel (para organizar a interface), uma combobox (permite escolher a origem da feed RSS), uma listbox (onde apresentamos os títulos dos artigos), um label (sempre útil para mostrar estado e outras informações), um botão (permite iniciar o processo de download do ficheiro XML com a lista de artigos) e por fim um WebBrowser que permitirá visualizar as páginas dentro da nossa aplicação. O código: A parte principal do código está localizado no botão e tem o seguinte aspeto:         Dim ligacao As String         Dim doc As New XmlDocument         Dim items As XmlNodeList         If Me.ComboBox1.SelectedIndex = -1 Then             Me.Label1.Text = "Tem de selecionar a fonte de RSS!"             Exit Sub         End If         If Me.ComboBox1.Text = "PCMagazine" Then             ligacao = "http://rssnewsapps.ziffdavis.com/pc

XML - Leitor RSS Feeds

Neste poste vou publicar uma aplicação desenvolvida com o Monodevelop em C# que permitirá fazer o download das feeds de dois sites (BBC e PCMagazine) cujos artigos podem ser lidos no browser. A janela principal é constituída por duas combobox's, uma que permite escolher qual o site de onde descarregar o XML com a lista de artigos (feed RSS) e a outra que é preenchida com a lista dos artigos depois de clicado o botão Carrega RSS. Para carregar o ficheiro XML vamos utilizar o código XmlDocument doc = new XmlDocument(); para criar um documento XML. Para depois ler o ficheiro do site selecionado na combobox1 if (this.combobox1.ActiveText=="BBC") doc.Load("http://newsrss.bbc.co.uk/rss/newsonline_uk_edition/front_page/rss.xml"); else if (this.combobox1.ActiveText=="PCMagazine") doc.Load("http://rssnewsapps.ziffdavis.com/pcmag.xml"); Se não tiver nada selecionado na combobox1 apresentamos uma mensagem ao utilizador, para isto basta o seguinte

XML

XML - Extensible Markup Language Segundo a Wikipédia " O XML é um formato para a criação de documentos com dados organizados de forma hierárquica...". Ainda segundo a Wikipédia " Seu propósito principal é a facilidade de compartilhamento de informações através da  internet ." Em última análise são ficheiros de texto que incluem tags que descrevem a estrutura dos dados a par da informação, ainda que não inclua o tipo de dados de cada campo. As RSS feeds são uma das utilizações do formato XML. Em relação às RSS a Wikipédia diz " Os  feeds  RSS oferecem conteúdo Web ou resumos de conteúdo juntamente com os links para as versões completas deste conteúdo e outros  metadados . Esta informação é entregue como um arquivo  XML  chamado "RSS feed", "webfeed", " Atom " ou ainda canal RSS." Com estas informações podemos construir um leitor de feeds RSS, para este exemplo vou utilizar PHP para ler uma feed RSS a partir do site da PCMagazin