Salve a tutti!

Mi sono messo al lavoro sulla mia tesi per la maturità (a settembre inizio la 5^ liceo). Cos'altro poteva scegliere un megalomane come me se non gli algoritmi genetici?

Adesso (più che altro per vedere se capisco come funzionano xD) sto facendo un programma che crea una lista di punti, dopodichè calcola il percorso più breve tra il punto x e il punto y passando per z punti. Se non ho sbagliato nulla (cosa di cui dubito) lo fa facendo evolvere delle soluzioni (spero). Perlomeno, la label che mi dice a che popolazione sono arrivato si aggiorna, il che mi fa pensare che magari tutto sommato qualcosa faccia xD

Cmq, il problema è un altro. Dato che può metterci parecchio tempo, ho pensato (male) di usare il backgroundworker, per metterlo su un altro thread.

Problema 1) la lista delle soluzioni viene calcolata sul thread principale usando dati che si trovano sul thread principale. Ma come faccio a passarla al thread del backgroundworker?

Problema 2) sul form di interfaccia ci sono delle bellissime caselline per scegliere le condizioni di arresto (dopo x popolazioni, se la distanza scende sotto y ecc). Ma dato che gli oggetti si trovano su un altro thread, ovviamente non posso usarli. Come posso passare al thread del bw le condizioni di arresto?

Grazie mille per l'aiuto!