Oppure

Loading
17/09/16 23:22
darioza
Ciao belli!
Il client di una socket async mi manda in "busy" l'icona del mouse...(la clessidra per chiarezza)
La qual cosa si verifica dopo un indeterminato e casuale numero di volte che il server risponde...
Idee?
è rimasto quello da controllare oppure un DllImport Pinvoke....
Cosa può darmi questo strano comportamento?
(strano ma vero, cosi immotivata una cosa così anti-estetica non mi era mai capitata...per il resto la form risponde ai comandi...)
Ultima modifica effettuata da darioza 17/09/16 23:35
aaa
18/09/16 9:48
TheDarkJuster
Se esegui le operazioni in un thread secondario ciò smetterà di avvenire.
aaa
18/09/16 11:40
darioza
Ciao, grazie per la risposta....
Ci avevo pensato anche io....anche se l'async mi dava tranquillità...
Ho provato, e nulla....
Stesso giochino...
Non ho spostato il pinvoke a dir la verità ora che ci penso...
Provo
Maledetto codice non gestito, magari è colpa sua?
Mai capitato

Ultima modifica effettuata da darioza 18/09/16 11:41
aaa
18/09/16 11:48
TheDarkJuster
Che pInvoke è? Hai grandi cicli nel codice? Come gestisci il thread secondario?
aaa
18/09/16 17:30
darioza
È un pinvoke su user32 per gli eventi legati al cursore, cosa relativamente economica sotto il profilo risorse-tempi
No, niente cicli lunghi, anche perché per "risolvere" (si fa per dire) ho commentato tutto il resto....


Edit: vogliamo ridere? sembra che la sezione di codice che da problemi, sia quando creo istanza di new cursor...ora nasce spontanea la domanda: perché?
Ultima modifica effettuata da darioza 18/09/16 19:36
aaa
19/09/16 11:37
TheDarkJuster
Linka la documentazione msdn che cerco di capire
aaa
19/09/16 11:48
darioza
Fuori dal pinvoke eh, lo ho escluso...
Pensavo fosse lui il problema, invece no...
La classe cursor del windows.form

msdn.microsoft.com/it-it/library/…(v=vs.110).aspx

Dopo aver eseguito l'istruzione
nome= new Cursor(Cursor.Current.
 Handle);


Compare l'icona busy e non ci sono santi...
mi sembra tanto strano
Ultima modifica effettuata da darioza 19/09/16 11:50
aaa
19/09/16 12:03
TheDarkJuster
Se imposti l'istanza partendo da quello attuale e il nuovo è in wait significa che anche l'istanza corrente era in wait al momento della creazione della nuova istanza.

Comunque poi puoi sempre cambiarlo:
nome= new Cursor(Cursor.Current. Handle);
nome.Cursor = Cursors.Default


oppure invece di usare Cursor.Current.Handle usare direttamente il cursore di default:

nome= new Cursor(Cursors.Default.Handle);

aaa