2010-07-17 5 views
0

Je veux l'utiliser pour un projet et je suis en difficulté. J'ai un formulaire Windows dans lequel j'ai démarré deux threads, puis fermez le formulaire et les threads continuent leurs travaux. Comment puis-je abandonner le premier thread lorsque le second thread s'arrête?Problème dans le filetage

J'ai fait le premier thread IsBackground, mais le deuxième thread n'est pas le seul thread du programme et le premier thread est démarré dans un autre thread (formulaire) qui est fermé et n'existe plus, en plus je ne peux pas définir Flag d'une classe qui n'existe pas. Que dois-je faire?

pour résoudre ce problème, je veux votre email pour envoyer mon projet Litle. Merci

Répondre

0

Vous dites que vous pouvez définir un drapeau ou une classe qui n'existe pas, mais je créerais un drapeau quelque part. Si ce n'est pas possible, je suggère que vous deviez afficher la raison pour cela.

Je voudrais envoyer une référence à un bool en quelque sorte à deux fils, lorsque le 1er fil se termine, il fixerait le bool à true et le 2ème fil garderait le contrôle de cette bool puis sortie quand il est vrai.

+0

Je travaille avec VB.NET2008 et j'ai créé un module et déclare mes fils et mon drapeau dedans. Si j'ai votre email, j'envoie mon petit projet pour vous. Merci et désolé pour mon mauvais anglais. – Sadjad

1

Je recommande de faire fonctionner l'arrière-plan comme un objet Task si vous utilisez .NET 4.0 et d'utiliser un CancellationToken pour annuler l'opération.

Si vous n'êtes pas encore sur .NET 4.0, vous pouvez utiliser l'objet BackgroundWorker qui prend également en charge l'annulation.

0

Vous n'êtes probablement mieux de ne pas créer le fil d'une forme qui va disparaître. Peut-être que vous devriez créer les discussions dans Program.cs et vous pouvez les tuer à partir de là aussi lorsque l'application se ferme. Ou une variante de cette méthode en fonction de la structure de votre application.

+0

Je travaille avec VB.NET2008 et j'ai créé un module et déclare mes fils et mon drapeau dedans. Si j'ai votre email, j'envoie mon petit projet pour vous. Merci et désolé pour mon mauvais anglais. – Sadjad