Voglio che 500 oggetti vengano elaborati contemporaneamente utilizzando il multithreading. Questi oggetti avranno alcuni dati iniziali prima della creazione dei thread.
Sto creando 5 thread e ogni thread prende 100 oggetti e avvia l'operazione.
Ecco il codice.
public class InputData
{
public string initialData {get; set;}
public string formula {get; set;}
public string resultData {get; set;}
}
public static List<string> result = new List<string>(500);
public static void Main()
{
List<InputData> lst = new List<InputData>(500);
List<InputData> lst_1 = .. // This will hold 1 to 100 objects
List<InputData> lst_2 = .. // This will hold 101 to 200 objects
List<InputData> lst_3 = .. // This will hold 201 to 300 objects
List<InputData> lst_4 = .. // This will hold 301 to 400 objects
List<InputData> lst_5 = .. // This will hold 401 to 500 objects
Thread t1 = new Thread(Update);
...
...
Thread t5 = new Thread(Update);
t1.Start(lst_1);
...
t5.Start(lst_5);
//while condition to wait for the threads to finish processing
while(...)
{
..
}
}
public static void Update(List<InputData> lstAll)
{
lstAll.resultData = lstAll.initalData + lstAll.formula;
//result.Add(lstAll.resultData);
}
Come puoi vedere dal codice, ogni thread usa un mucchio di oggetti. E sto aggiornando solo la proprietà resultData
di ogni oggetto.
Il blocco è necessario in questo programma? Qualcuno può aiutarti
.net version è 3.5