Oppure

Loading
31/01/10 11:34
Furion
Ciao ragazzi, allora il titolo non è molto espressivo, cmq il problema è questo. Ho scritto una semplice dll in C in cui ci sono due funzioni. Una di queste prende in input un'array di interi, li elabora e poi li ritorna. Nel main, scritto in VB, ho una matrice di interi e, riga per riga, li passo alla dll. Mi sono accorto che potrei accorciare i tempi costruendo un thread per ogni riga della matrice, in modi da richiamare la dll in parallelo. Ora la domanda è: si può fare una cosa del genere, o è solo una mia fisima mentale? Se sì, molto probabilmente dovrò cambiare il codice della dll. Cosa devo cambiare?

Se serve posto la struttura della dll, il main è un semplicissimo ciclo for, quindi non penso serva. Grazie e a presto ^_^
aaa
31/01/10 11:39
Sicuramente, maggiori dettagli sul codice non farebbero male, per capire meglio ...

Ma la domanda principale è ... perchè non scrivi tutto il codice in VB utilizzando i thread di VB ?
31/01/10 16:16
Gianluca87
occhio ci sono dei limiti sui thread concorrenti che puoi eseguire...
apri google... cerca ThreadPool ;-)
aaa
31/01/10 17:31
Furion
@nessuno
Allora ho dovuto scrivere la dll in C perchè queste operazioni che faccio sugli interi sono di tipo bitwise, e in C sono infinitamente più veloci: all'inizio avevo scritto tutto in VB, però trasformando la dll in C ho ridotto i tempi di esecuzione ad un terzo. La struttura della dll è la seguente (scritta in C# per la precisione)

namespace MioSpazio
{
    public class Classe
    {        
        public static void funzione(ref byte[] array){
            // Corpo della funzione
        }

        // Qui c'è un altra funzione
    }
}


@Gianluca87
Per limiti intendi un numero massimo (o roba del genere)? Se è così a me basta poter eseguire 3-4 thread insieme. Cmq ora guardo
Ultima modifica effettuata da Furion 31/01/10 17:32
aaa
31/01/10 19:43
Gianluca87
esattamente c'è un numero limite di thread che puoi eseguire per core oltre la quale le performance calano drasticamente ora non ricordo il link ma è documentato molto bene
aaa
31/01/10 21:43
Furion
Si ma tanto come ho detto a me bastano 3-4 thread, non di più. Cmq, tornando al problema originario, in java dovrei modificare la classe della dll dicendo che implementa Runnable. Qui devo fare una cosa simile?
Ultima modifica effettuata da Furion 31/01/10 21:51
aaa