09/02/17 14:40
Thejuster
Salve ragazzi,
Forse a qualcuno è capitato un problema del genere.
Ho provato a chiedere anche ad amici ma non sono riusciti a trovarmi una soluzione.
Forse vi è capitato già qualcosa del genere e sapete come fare.
Vi spiego il mio problema.
Ho realizzato un Debugger interattivo per il mio progetto
cdn.discordapp.com/attachments/215894893866909696/278841652129562625/…
Il tutto gira sui NamedPipeServer che consente una sorta di comunicazione tra applicazione e processo.
Un pò come visual studio mostra le variabili e altri oggetti.
Il problema è questo.
Il debugger funziona bene, e fà bene il suo lavoro e per lo scopo che e stato programmato.
Ma nonostante io tenta di chiudere tutte le comunicazioni con il l'applicazione al cui il pipe è connesso
essa non sembra chiudersi.
in primis ho un eccezione al pipe drain
Come vedete ho commentato questa l'attesa che il pipe venga droppato.
perché la limitazione di questo processo è proprio quella di inviare una sola stringa per azione.
e siccome un debugger deve tener traccia di ogni viariabile, avere un sola stringa per volta non va bene.
quindi ho inserito un ciclo nel ciclo del pipe server.
Questo parte del mio codice,
Ho postato solo una parte giusto per mostrare il funzionamento del metodo.
Avviando la prima volta il debbuger, assieme al debugger parte anche il processo a cui
il pipe server si collega. e tiene traccia come nella screen di tutte le variabili e altre informazioni.
Ma riavviando una seconda volta il debug, si frezza tutto e non capisco il motivo perché accade questo.
il debugger di VS non mostra errori...
Per risolvere ciò
anche se chiudo tutti i form, il programma rimane avviato.
nonostante io abbia fermato il thread a cui il debugger viene azionato.
per chiudere il programma sono costretto ad usare
Consigli?
Forse a qualcuno è capitato un problema del genere.
Ho provato a chiedere anche ad amici ma non sono riusciti a trovarmi una soluzione.
Forse vi è capitato già qualcosa del genere e sapete come fare.
Vi spiego il mio problema.
Ho realizzato un Debugger interattivo per il mio progetto
cdn.discordapp.com/attachments/215894893866909696/278841652129562625/…
Il tutto gira sui NamedPipeServer che consente una sorta di comunicazione tra applicazione e processo.
Un pò come visual studio mostra le variabili e altri oggetti.
Il problema è questo.
Il debugger funziona bene, e fà bene il suo lavoro e per lo scopo che e stato programmato.
Ma nonostante io tenta di chiudere tutte le comunicazioni con il l'applicazione al cui il pipe è connesso
essa non sembra chiudersi.
in primis ho un eccezione al pipe drain
//pipeServer.WaitForPipeDrain(); if (pipeServer.IsConnected) { pipeServer.Disconnect(); }
Come vedete ho commentato questa l'attesa che il pipe venga droppato.
perché la limitazione di questo processo è proprio quella di inviare una sola stringa per azione.
e siccome un debugger deve tener traccia di ogni viariabile, avere un sola stringa per volta non va bene.
quindi ho inserito un ciclo nel ciclo del pipe server.
do { try { pipeServer.WaitForPipeDrain(); // start inner loop while (pipeServer.IsConnected) { //Esempio test = sr.ReadLine(); if(test.Contains("lightvalue")) { lightR = Math.Floor(l.Color1 == 1.0 ? 255 : l.Color1 * 256.0); } // Comando di chiusura if (test == "close") pipeServer.Disconnect(); } catch (Exception ex) { throw ex; } finally { //pipeServer.WaitForPipeDrain(); if (pipeServer.IsConnected) { pipeServer.Disconnect(); } }
Questo parte del mio codice,
Ho postato solo una parte giusto per mostrare il funzionamento del metodo.
Avviando la prima volta il debbuger, assieme al debugger parte anche il processo a cui
il pipe server si collega. e tiene traccia come nella screen di tutte le variabili e altre informazioni.
Ma riavviando una seconda volta il debug, si frezza tutto e non capisco il motivo perché accade questo.
il debugger di VS non mostra errori...
Per risolvere ciò
anche se chiudo tutti i form, il programma rimane avviato.
nonostante io abbia fermato il thread a cui il debugger viene azionato.
per chiudere il programma sono costretto ad usare
Application.ExitThread(); Environment.Exit();
Consigli?
mire.forumfree.it/ - Mire Engine
C# UI Designer
C# UI Designer