1. Este site usa cookies. Ao continuar a usar este site está a concordar com o nosso uso de cookies. Saber Mais.

Duvida imbecil

Discussão em 'Programação' iniciada por AwakE, 22 de Novembro de 2004. (Respostas: 10; Visualizações: 887)

  1. AwakE

    AwakE Banido

    Desculpem lá esta mas como se chama aquela barra que tá na parte de baixo do internet explorer, onde aparece o "Done".

    Queria por umas cenas a aparecer lá, mas não me lembro da porcaria do nome daquilo.

    Já agora aproveito para perguntar outra coisa. Se eu quiser fazer um programa que não é mais do que uma barra que passa informação, estilo da bolsa, qual a maneira mais faicl de o fazer?
     
  2. NoMercy

    NoMercy Power Member

  3. Delta

    Delta Suspenso

    =============
    Já agora aproveito para perguntar outra coisa. Se eu quiser fazer um programa que não é mais do que uma barra que passa informação, estilo da bolsa, qual a maneira mais faicl de o fazer ?
    =============

    Se for uma aplicação a ser inserida em WEB, usas um Message Scroller, existem scripts grátis por aí...ou fazes tu que é muito fácil

    Numa aplicação windows usas as propriedades da Status Bar
     
  4. NoMercy

    NoMercy Power Member

    Se é em ambiente "janelas" (tipo windows) porque é que não fazes numa janela normal? se não queres que a janela possa ser "resizable" ou minimizavel ou até mesmo sem "Title Bar" modifica as propriedades da janela.
     
  5. AwakE

    AwakE Banido

    Tks.

    Entretanto lá me fui safando e fiz o que queria. Agora são a porcaria das subthreads que não fecham....

    Um Application.Exit() não devia fechar todas as threads? Hoje ando no dia das experiencias.
     
    Última edição: 22 de Novembro de 2004
  6. NoMercy

    NoMercy Power Member

    Não sei que linguagem estás a usar, mas se terminares "aplicação" supostamente todas as threads do mesmo processo tambem terminam, a menos que a thread esteja num processo diferente do que estás terminar.
    [edit]
    Terminares o processo em si é talvez uma solução demasiado "brusca".
    No caso de estares a usar .NET o Application.Exit() informa os o message loop para terminarem e não termina o processo em si.
    [/edit]
    Já agora que linguagem estás a usar?
     
    Última edição: 22 de Novembro de 2004
  7. AwakE

    AwakE Banido

    Pois, ia agora por isso :D

    Tou a trabalhar com Windows Forms em C#. O que tá a acontecer é que tenho a Form, e uma thread em paralelo a processar um relógio (que dispara eventos).

    Quando eu fecho a Form (no X) dispara o evento Form_Closing, mas quando tento parar a thread paralela dentro desse evento na dá....a referencia do objecto thread já vai long gone.
     
  8. NoMercy

    NoMercy Power Member

    em .NET tambem podes usar o Application.ExitThread() para terminares a thread (Exits the message loop).
     
  9. Karakatoa

    Karakatoa Power Member

    Ola pessoal
    Partindo do principio que estamos a falar de C#
    A resposta efectivamente é não. O Application.Exit() não termina todas as threads. Apenas termina os message loops de todas as threads.
    Para terminares as threads tens varias hipoteses.
    Por exemplo: Teres uma variavel de controlo que indica que a applicação fechou e a thread em cada ciclo verifica essa situação.
    Outra hipotese é guardares a referencia para a thread e chamares o método Abort() da thread
    Provavelmente nenhuma destas soluções se adequam ao teu problema mas como não sei o contexto em que estas a utilizar as threads não posso auxiliar melhor... :001:
     
  10. AwakE

    AwakE Banido

    A solução às vezes é mais simples do que parece.

    tr.IsBackground = true;

    antes do:

    tr.Start();

    Como tr está em background quando o UI sai, tr fecha automaticamente (tr é o nome da thread paralela).
     
  11. Karakatoa

    Karakatoa Power Member

    Yap. Essa solução tb resolve o problema. Na pratica o que acontece é que a CLR ao terminar o processo chama o método Abort() de todas as threads que sejam identificadas como background. O único senão nessa solução, mas que para o teu caso aparentemente nao tem impacto, é o facto do método Abort causar um término abrupto na thread ao lançar uma AbortThreadExcepcion (acho que a excepção tem esse nome) no fio de execução da thread, o que pode ser mau, caso a thread tenha que libertar recursos (por exemplo ficheiros)
    :)
     
    Última edição: 24 de Novembro de 2004

Partilhar esta Página