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. Visual Studio 6.0
[VB.NET] Problemi con array
martedì 21 aprile 2009 - 18.14
Elenco Threads
Stanze Forum
Aggiungi ai Preferiti
Cerca nel forum
RicFreak
Profilo
| Newbie
1
messaggi | Data Invio:
mar 21 apr 2009 - 18:14
Sto facendo un programma che deve gestire una comunicazione seriale, con parole da 14 bytes.
Per evitare problemi, il programma attiva 2 thread; il primo riceve i dati dalla seriale e li invia ad una coda di byte Q1;
il secondo thread esamina la coda di byte Q1, estrae 14 bytes, controlla che tutto sia a posto e popola una coda di byte(13) Q2;
Il main, infine, chiede i dati alla Q2 e fa i fatti suoi.
Il problema sorge nel momento in cui Q2 accumula più di un elemento, perché i successivi accessi alla coda Q2 non restituiscono i dati corretti.
Per capirsi meglio, supponiamo che Q2 sia in questa situazione:
Item 1: 01 02 03 04 05 06 07 08 09 10 11 12 13 14
Item 2: 15 16 17 18 19 20 21 22 23 24 25 26 27 28
La successiva istruzione Q2.Dequeue non restituirà, come ci aspetterebbe, Item 1 ma Item 2, e la successiva Dequeue restituirà nuovamente item 2, facendo di fatto sparire Item 1.
Ho pensato ad un problema di sincronizzazione di thread, così ho rifatto il tutto utilizzando dei timer senza processi mutithread, e l'errore permane.
Poi ho pensato di sostituire il tipo byte(14) con string e, magia... tutto funziona.
In sostanza la gestione delle code sembra avere problemi nel caso in cui vengano gestiti tipi non atomici.
Qualcuno ha mai avuto a che fare con cose di questo genere?????
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 !