se si cerca ci utilizzare un oggetto o elemento di un'altra sessione, per esempio in un background o in un'atra form, potrebbe dare un errore dei tipo
Cross-thread operation not valid
una soluzione é quella di escludere dopo l'inizializzazione del Form ogni controllo nel software di accessi illegali nelle varie sessioni con
Control.CheckForIllegalCrossThreadCalls = false;
ma potrebbe dare altri problemi quindi si sconsiglia
per i metodi che non restituiscono un valore si può usare questa sintassi
BeginInvoke((Action)delegate () {codice ... });
BeginInvoke((MethodInvoker)delegate () {codice ... }); alternativa
esempio: eseguo un aggiornamento di una CheckedListBox tramite array
for (int x = 0; x < array.Length - 1; x++)
{
BeginInvoke((Action)delegate () {CheckedListBox.Items.Add(array[x]);});
}