D'habitude, lorsque tu as un Cross-thread operation not valid c'est qu'un objet créé dans un autre thread est accéder dans un thread différent que celui qui la créé. De façon plus spécifique (car j'ai déjà eu ce problème), c'est que le thread créé essaie de communiquer avec l'objet Form créé dans le thread principale, et que l'appel à un objet contrôle d'un autre thread créé cet erreur.
Regarde tes threads en mode débug voir si tu es dans le même thread.