Indice oltre i limite della matrice

martedì 14 aprile 2009 - 15.13

toniovigi Profilo | Expert

Ciao ragazzi,ho il seguente codice :

FileInfo[] files2 = new FileInfo[openFileDialog1.FileNames.Length];
for (int i = 0; i < files.Length; i++)
{
files2[i] = new FileInfo(openFileDialog1.FileNames[i]);
MessageBox.Show("" + files2[i].Name.ToString());
}

QUELLO FATTO QUA SOPRA e praticamente VISUALIZZARE CON UNA MESSAGEBOX I FILE CHE IO HO SELEZIONATO TRAMITE OPENFIALEDIALOG,E
M VISUALIZZA IL NOME C:\NOMEFILE.EXT

NEL CICLO FOR la VARIABILE FILES SAREBBE L’INSIEME DEI FILE K HO SELEZIONATO,
POI FILES2 E APPUNTO L’ARRAY CHE CONTIENE I FILE CON SOLO IL NOME



for (int i = 0; i < files2.Length; i++)
{
Thread thd = new Thread(delegate()
{
ThreadRar("-M1",@"C:\test.zip", @""+files2[i].ToString());
});
thd.Start();

PREMETTENDO CHE ThreadRar(string comp,string destRar, string srcFile) (FUNZIONE CHE RICHIAMA UN BATCH CHE PERMETTERE DI ZIPPARE DEI FILE)

ADEX QUI QUELLO CHE FACCIO E UN CICLO DOVE IO PER OGNI ELEMENTO VOGLIO FARE LO ZIP MA FACENDO IN QUESTO MODO MI DA UN ERRORE:

INDICE OLTRE I LIMITI DELLA MATRICE

COSA STRANA E CHE SE IO FACCIO IL DEBUG PASSO PASSO CON F10 VA TUTTO OK

COME MAI??EPPURE IL CICLO E FILES2.LENGHT QUINDI NN CAPISCO DOVE SFORA..E T DIRò D +, S FERMA SEMPRE A 2 ELEMENTI…FILES2[I].
HO CONTROLLATO I VALORI SEMBRA TT OK..FACCIO IL DEBUG CON F10 VA PERFETTO MA IN EXE NORMALE..NADA..

COME MAI??

GRAZIE

R3GM4ST3R Profilo | Junior Member

Problema di cross threading!
Facendo il debug passo passo funziona xkè non si incastrano i threads!
prova a levare i thread e vedrai che tutto funziona!
Per quanto riguarda i threads in C# non ne so molto, io uso VB se vuoi ti faccio un esempio in VB...

P.S. Prima di ciclare la variabile contenente i files controlla che non sia a null!


Tutti sanno che una cosa è impossibile da realizzare, finché arriva uno sprovveduto che non lo sa e la inventa. (Albert Einstein)
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 !
Copyright © dotNetHell.it 2002-2024
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5