PDA

View Full Version : Applicazione "bloccata" durante lunga esecuzione di codice


Capello82
08-03-2008, 11:32
Salve a tutti. Sto costruendo piano piano (non esperto di programmazione) un'applicazione in Visual Basic 2005 Express Edition. Lo scopo è inviare dati sulla porta seriale ogni volta che ricevo, sempre tramite seriale, un certo carattere (nel mio caso ad esempio "K" come OK). Su questa parte non ho problemi fortunatamente e funziona (con mia grande gioia in quanto è la mia prima applicazione ^^).

L'invio dei dati comincia con un click di un tasto; essendo però uno scambio lungo di dati l'applicazione principale è ovviamente impegnata al 100% ad esegure le linee di codice che sono nella sub del tasto in questione, rendendo impossibile fare altre cose sull'applicazione, anche solo il semplice spostarla sullo schermo.

Vorrei trovare qualche esempio che mi faccia capire bene come rendere l'applicazione principale "libera" anche mentre c'è lo scambio di dati sulla seriale. Per ora sto spulciando qua e là guide sul "Threading" ma il risultato che finora ho ottenuto è sempre lo stesso ^^

Cosa mi consigliate?

francescosalvaggio
08-03-2008, 13:06
se ti si blocca il programma potresti involontariamente aver gatto un ciclo infinito mandando in loop la cpu

amedeoviscido
08-03-2008, 13:26
per far rispondere la tua applicazione alle chiamate di sistema (e quindi non farla sembrare bloccata) utilizza questo comando all' interno del ciclo:

Application.DoEvents()

Ad esempio, una applicazione con questo codice:


do while true
application.doevents()
loop


Non dovrebbe risultare bloccata al sistema, se non fino a quando non si tenta di chiuderla.

EDIT - PS: Cambia il titolo della discussione, metti VB.NET davanti

cionci
09-03-2008, 00:19
Thread chiuso
|
V