我正在使用此表单中的表单,当用户单击一个按钮时,会生成一个新线程,创建一个新表单并执行一些工作并显示结果。请参阅以下代码 我在我的项目中创建了主类,它存储了每种类型对象的引用
Program.someFormReference
当用户点击按钮时,新线程会创建和 Program.someFormReference = new CreatedForm()。 现在,如果用户多次按下按钮将会是什么。我们在内存中有多个对象,其中有线程处理它们。但我只参考了一个帖子。 避免这种情况的一个解决方案是使按钮禁用,直到线程完成它,s工作。 还有什么其他解决方案可以避免这种不受控制的线程链。
答案 0 :(得分:0)
首先应该做的是决定以下问题:
您想要激活一个或多个此类线程吗?
看来你对这个问题尚未确定,所以首先想出一个。
然后,如果:我想只有一个活动线程,那么你要么:
要停止活动表单,如果它正在运行表单,只需关闭该表单即可。即。如果你的话题中有这个:
Application.Run(someform);
然后关闭那个表格。您需要使用someform.Invoke
,因为它在另一个线程上运行,但应该可以按照您的需要运行。
或者,如果:我想让许多此类线程处于活动状态,那么您需要保留活动线程列表,并管理此列表,即。线程完成后删除条目等