2010-07-17 90 views
0

我想将它用于一个项目,并且我遇到了麻烦。 我有一个Windows窗体,其中我开始了两个线程,然后关闭窗体并且线程继续他们的工作。当第二个线程停止时,如何中止第一个线程?线程问题

我做了第一个线程IsBackground,但第二个线程不是程序的唯一线程,并且第一个线程在另一个线程(窗体)中被关闭并且不再存在,此外我不能设置标志一个不存在的类。 我该怎么办?

为了解决这个问题,我希望你的电子邮件发送我的litle项目。 谢谢

回答

0

你说你可以设置一个不存在的标志或类,但我会在某处创建一个标志。如果这是不可能的,我建议你需要发布原因。

所以我在参考发送到bool以某种方式两个线程,当第一个线程完成,将设置booltrue和第二线程将继续检查该bool然后退出的时候它是真实的。

+0

我正在使用VB.NET2008,我创建了一个模块并在其中声明了我的线程和标志。如果我有您的电子邮件,我会为您发送我的小项目。 感谢和抱歉我的英语不好。 – Sadjad 2010-07-19 04:33:39

1

如果您使用的是.NET 4.0,并且使用CancellationToken来取消操作,那么我建议将后台工作作为Task对象。

如果您还不在.NET 4.0中,则可以使用BackgroundWorker对象,该对象还支持取消。

0

你可能最好不要从将要消失的窗体创建线程。也许你应该在Program.cs中创建线程,然后你可以在应用程序关闭时从那里杀掉它们。或者这种方法的一些变体取决于你的应用程序的结构。

+0

我正在使用VB.NET2008,我创建了一个模块并在其中声明了我的线程和标志。如果我有你的电子邮件,我会为你发送我的小项目。 感谢和抱歉我的英语不好。 – Sadjad 2010-07-19 04:32:08