Home Page
Articoli
Tips & Tricks
News
Forum
Archivio Forum
Blogs
Sondaggi
Rss
Video
Utenti
Chi Siamo
Contattaci
Username:
Password:
Login
Registrati ora!
Recupera Password
Home Page
Stanze Forum
App. WinForms / WPF .NET
Uso del Timer
venerdì 23 settembre 2005 - 15.32
Elenco Threads
Stanze Forum
Aggiungi ai Preferiti
Cerca nel forum
Lomba
Profilo
| Newbie
11
messaggi | Data Invio:
ven 23 set 2005 - 15:32
Salve a tutti,
vorrei sapere se posso usare il timer di vb.net per questo scopo:
ad un certo punto del mio programma (che chimo A) devo richiamare un programma esterno (che chiamo B), vorrei poter impostare che se B non ha terminato il suo lavoro in un numero precisato di secondi, A deve terminare B e dare un messaggio di errore.
Ho provato ad impostare un timer che attivo e faccio partire prima di richiamare B, solo che il conteggio dei secondi si svolge dopo che B ha terminato il suo lavoro e non durante, ho provato anche ad impostare il timer in una form diversa da quella in cui richiamo B, ottenendo però lo stesso risultato.
Come posso fare, il timer va impostato in um modo particolare oppure devo usare uno strumeto diverso per raggiungere il mio fine?
Grazie
Brainkiller
Profilo
| Guru
7.999
messaggi | Data Invio:
ven 23 set 2005 - 17:07
Ciao,
si può essere utilizzato anche così il Timer. In teoria credo ci siano anche altri modi utilizzando i Thread. E'strano che non ti giri il Timer quando chiami il programma esterno. Secondo me potresti fare così Creare un WorkerThread (tramite classi Thread e ThreadStart) da lì avviare il programma esterno e contemporaneamente attivare il Timer.
Il timer fa un'attività di polling controllando nell'elenco dei processi. Se è presente il programma esterno significa che è ancora in esecuzione diversamente ha già terminato. Se in esecuzione ma ha superato il limite puoi provare ad abbatterlo.
Ciao
David De Giacomi
Microsoft MVP
http://blogs.dotnethell.it/david/
Lomba
Profilo
| Newbie
11
messaggi | Data Invio:
ven 23 set 2005 - 17:43
Per prima cosa grazie per l'attenzione, putroppo sono ancora alle prime armi con vb.net e non mi è chiaro come usare questi "Thread", se non ho capito male è un modo per eseguire due operazioni in contemporanea, le mio sapere si ferma però quì. Potresti spiegarmi cosa sono e come si usano, magari con un piccolo esempio? Inoltre quello che ho chiamato "Programma B" in realtà non è un programma vero e proprio, è solo una sorta di libreiria dll, pertanto durante il suo lavoro nel Task manager risulta solo il "Programma A". Quello che quindi vorrei fare è:
1. eseguire A / 2. durante A richimare le dll / 3. dopo x secondi se non ho ancora ottenuto il risultato, aprire un MsgBox indicando che il tempo è esaurioto e chiudere il programma A.
Grazie mille
Brainkiller
Profilo
| Guru
7.999
messaggi | Data Invio:
sab 24 set 2005 - 16:53
Si è esatto.
Quando si crea un nuovo processo all'interno del processo possono essere create più unità d'esecuzione o Thread. Tu hai un Thread dove gira la WinForm ma ne puoi creare ulteriori paralleli fino a 25 se non erro in un'applicazione .NET per farci girare altri algoritmi senza bloccare l'applicazione principale. La gestione e la concorrenza dei Thread non è cosa banale. Come crearli e come usarli, basta che guardi nel Framework ci sono esempi e spiegazioni:
http://msdn.microsoft.com/library/en-us/dllproc/base/creating_threads.asp
Ciao
David De Giacomi
Microsoft MVP
http://blogs.dotnethell.it/david/
Lomba
Profilo
| Newbie
11
messaggi | Data Invio:
mar 27 set 2005 - 16:02
Dopo un pò di prove sono riuscito a creare due thread in cui eseguire da una parte il timer e, dall'altra, le dll. Tuttavia il problema è rimasto. Ho visto che esistono diversi timer in vb.net. Il "threading.Timer" sembra essere lo strumeto adatto per raggiungere mio scopo, in quanto, se ho capito bene, gestisce in automatico un thread per il timer stesso. Qualcuno può confermare questa mia tesi? Inoltre qualcuno sa mica come si usa? L'esempio presente nella guida di Microsoft non mi è per nulla chiaro.
Grazie mille
fasol
Profilo
| Junior Member
125
messaggi | Data Invio:
gio 22 giu 2006 - 17:39
ciao nel prg b attiva il
DoEvent(in tutte le funzioni)
e prova se funziona....
Torna su
Stanze Forum
Elenco Threads
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?
Dopo esserti registrato potrai chiedere
aiuto sul nostro
Forum
oppure aiutare gli altri
Consulta le
Stanze
disponibili.
Registrati ora !