gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-11-30 18:42:55 25 4
gpt4 key购买 nike

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

程序.someFormReference

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

最佳答案

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

您想要一个或多个这样的线程处于事件状态吗?

看来你在这个问题上犹豫不决,所以先把那个弄清楚。

然后,如果:我只想激活一个线程,那么您可以:

  1. 在第一个线程完成之前不允许启动另一个线程
  2. 在开始新的之前停止活跃的

要停止事件的,如果它正在运行一个表单,只需关闭该表单即可。 IE。如果你的线程中有这个:

Application.Run(someform);

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

或者,如果:我希望有许多这样的线程处于事件状态,那么您需要保留一个事件线程列表,并管理该列表,即。当线程完成等时删除条目。

关于c# - 中止与未引用对象关联的线程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5229865/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com