c# - 停止线程的最佳方法

标签 c# multithreading

我正在使用线程池中的线程来执行一些操作。 现在,在某些情况下,如果出现问题,我想关闭表单。 我有一个 try/catch-block,如果它捕获到某些东西,它应该做一些事情然后关闭表单。问题是,当关闭时,线程在后台继续运行,然后在我调用某些东西的地方抛出异常,因为句柄不再存在。

好吧,所以我需要停止线程,这样它就不会继续。我听说“中止”不是一个好的解决方案,我应该制作一个标志变量并进行查询,但我应该怎么做呢? 有没有更好的方法? 如果您需要代码,请告诉我,但这是一个更笼统的问题。

谢谢!

最佳答案

我不确定是什么问题,因为你没有提供代码,但也许你应该检查 InvokeRequired 属性,试试这个:

if (Control.InvokeRequired)
{
// your code
}

关于c# - 停止线程的最佳方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23461561/

相关文章:

C#/WinForms : ShowDialog and subsequent Show on Form

c# - 在 C# 中混合列表<string>

c# - 无法将类型 'System.Collections.ArrayList' 的对象强制转换为类型 'System.Collections.Generic.IEnumerable'

multithreading - 是否可以 “cross collapse”并行循环?

vb.net - 在线程之间共享信息

java - Android后台服务定时器无法正常工作

java - 为什么无法读取此代码 : Exception in thread "main" java. util.NoSuchElementException,位于 java.util.Scanner.throwFor(未知来源),

c# - 从 T4 模板调用同一项目中的类

javascript - ASP.NET MVC 如何使用 signaturepad 库将签名的 byte[] 转换为保留签名图像的 jpeg?

c# - 字符串替换方法的优化