View Full Version : Duvida imbecil


AwakE
22-11-2004, 11:16
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?

NoMercy
22-11-2004, 11:21
Status Bar

Delta
22-11-2004, 11:26
=============
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

NoMercy
22-11-2004, 11:36
=============
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.

AwakE
22-11-2004, 16:57
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.

NoMercy
22-11-2004, 17:13
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.

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.

Já agora que linguagem estás a usar?

AwakE
22-11-2004, 17:22
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.

NoMercy
22-11-2004, 17:27
em .NET tambem podes usar o Application.ExitThread() para terminares a thread (Exits the message loop).

Karakatoa
22-11-2004, 17:35
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:

AwakE
22-11-2004, 20:42
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).

Karakatoa
23-11-2004, 11:33
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)
:)