中止与未引用对象关联的线程

时间:2011-03-08 08:03:11

标签: c#

我正在使用此表单中的表单,当用户单击一个按钮时,会生成一个新线程,创建一个新表单并执行一些工作并显示结果。请参阅以下代码 我在我的项目中创建了主类,它存储了每种类型对象的引用

Program.someFormReference

当用户点击按钮时,新线程会创建和 Program.someFormReference = new CreatedForm()。 现在,如果用户多次按下按钮将会是什么。我们在内存中有多个对象,其中有线程处理它们。但我只参考了一个帖子。 避免这种情况的一个解决方案是使按钮禁用,直到线程完成它,s工作。 还有什么其他解决方案可以避免这种不受控制的线程链。

1 个答案:

答案 0 :(得分:0)

首先应该做的是决定以下问题:

您想要激活一个或多个此类线程吗?

看来你对这个问题尚未确定,所以首先想出一个。

然后,如果:我想只有一个活动线程,那么你要么:

  1. 禁止启动另一个线程,直到第一个线程完成
  2. 在开始新的
  3. 之前停止活动的

    要停止活动表单,如果它正在运行表单,只需关闭该表单即可。即。如果你的话题中有这个:

    Application.Run(someform);
    

    然后关闭那个表格。您需要使用someform.Invoke,因为它在另一个线程上运行,但应该可以按照您的需要运行。

    或者,如果:我想让许多此类线程处于活动状态,那么您需要保留活动线程列表,并管理此列表,即。线程完成后删除条目等