Karusu
12-06-2009, 14:57
Salve a tutti,
sto aggiungendo una funzionalità client server ad una applicazione mfc,
dato che mi serve un server sempre in ascolto di connessioni entranti ho realizzato questo su un processo secondario che mi riceve una stringa e la memorizza in una variabile e si autosospende.
Il flusso del programma si sposta al processo principale costituito dall'interfaccia, il mio problema e appunto qui, io richiamo la procedura server all'interno di un onClick button event condizionato da due radio button ON/OFF.
All'interno di onClick, se è selezionato ON, crea il thread server e successivamentr, parte un ciclo while(condizionato dallo stato di ON 0/1) dove, una volta che la stringa è stata ricevuta, questa viene analizzata e in base all'esito dell' analisi si avvia un'azione corrispondente,
finita l'esecuzione della quale viene ripreso il serverThread e controllato lo stato di ON.
Il mio problema è che se l'azione eseguita è complicata il sistema va in crash ma secondo me non perchè l'operazione è troppo pesante perchè se la faccio senza passargli il comando da remoto la fa tranquillamente, può capitare invece che l'applicazione non riesca ad aggiornare l'interfaccia stessa, è possibile che ciò accada?
o meglio se mi trovo in una routine legata ad un bottone dell'interfaccia, questa può essere aggiornata se la routine stessa non è finita?
Ad esempio:
io dico al server di aprire una immagine, lui riceve la stringa la segnala all'interfaccia e questa dopo l'analisi della stringa apre un immagine nell'apposito pannello. Invece se gli dico di calcolare qualcosa sull'immagine che comporta come risultato un aggiornamento della stessa immagine e di caselle di testo si blocca.
Inoltre se mi trovo in una routine legata ad un bottone dell'interfaccia (es.onClickEvent) posso interagire con l'interfaccia senza che questa si blocchi?
Scusate se non si capisce bene il problema ma sinceramente sono alla prima esperienza sulle applicazioni mfc e non so di preciso quale sia ho capito solo che è all'interno di questo ciclo.
Grazie per le eventuali risposte.
sto aggiungendo una funzionalità client server ad una applicazione mfc,
dato che mi serve un server sempre in ascolto di connessioni entranti ho realizzato questo su un processo secondario che mi riceve una stringa e la memorizza in una variabile e si autosospende.
Il flusso del programma si sposta al processo principale costituito dall'interfaccia, il mio problema e appunto qui, io richiamo la procedura server all'interno di un onClick button event condizionato da due radio button ON/OFF.
All'interno di onClick, se è selezionato ON, crea il thread server e successivamentr, parte un ciclo while(condizionato dallo stato di ON 0/1) dove, una volta che la stringa è stata ricevuta, questa viene analizzata e in base all'esito dell' analisi si avvia un'azione corrispondente,
finita l'esecuzione della quale viene ripreso il serverThread e controllato lo stato di ON.
Il mio problema è che se l'azione eseguita è complicata il sistema va in crash ma secondo me non perchè l'operazione è troppo pesante perchè se la faccio senza passargli il comando da remoto la fa tranquillamente, può capitare invece che l'applicazione non riesca ad aggiornare l'interfaccia stessa, è possibile che ciò accada?
o meglio se mi trovo in una routine legata ad un bottone dell'interfaccia, questa può essere aggiornata se la routine stessa non è finita?
Ad esempio:
io dico al server di aprire una immagine, lui riceve la stringa la segnala all'interfaccia e questa dopo l'analisi della stringa apre un immagine nell'apposito pannello. Invece se gli dico di calcolare qualcosa sull'immagine che comporta come risultato un aggiornamento della stessa immagine e di caselle di testo si blocca.
Inoltre se mi trovo in una routine legata ad un bottone dell'interfaccia (es.onClickEvent) posso interagire con l'interfaccia senza che questa si blocchi?
Scusate se non si capisce bene il problema ma sinceramente sono alla prima esperienza sulle applicazioni mfc e non so di preciso quale sia ho capito solo che è all'interno di questo ciclo.
Grazie per le eventuali risposte.