Les contrôles utilisateur doivent s'exécuter sur le thread d'interface utilisateur car il s'agit d'une restriction dans l'API Windows. Si vous essayez d'utiliser les contrôles Windows Forms d'un autre thread, vous obtiendrez une exception.
Vous pouvez exécuter un autre code dans un autre thread, mais utilisez le thread d'interface utilisateur pour mettre à jour les contrôles. Vous pouvez utiliser BackgroundWorker pour cela. Ou vous pouvez utiliser les méthodes InvokeRequired et Invoke ou BeginInvoke sur l'instance de contrôle pour faire exécuter du code sur le thread d'interface utilisateur.
Vous mentionnez que vous souhaitez utiliser un verrou mutex. Un mutex permet d'éviter que plusieurs threads accèdent à une ressource en même temps. Si tout votre code s'exécute dans le même thread, vous n'avez pas besoin de verrou du tout.
Quel type de contrôle utilisateur? Winforms? –
yup. – Sadegh