Duvida imbecil

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?
 
=============
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
 
Delta disse:
=============
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 é 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.
 
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:
AwakE disse:
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.
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:
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.
 
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:
 
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).
 
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:
Back
Topo