gpt4 book ai didi

c# - 运行线程时我的 Try Catch block 应该在哪里?

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

接受这个话题:

Thread thread = new Thread(delegate()
{
//Code
});

thread.Start();

它应该在 thread.Start(); 周围还是在内部:

Thread thread = new Thread(delegate()
{
try
{
//Code
}
catch (Exception)
{
//Code
}
});

最佳答案

放在里面和放在外面是完全不同的。

如果将它们放在 thread.Start() 调用周围,您可以检测到(根据此页面:http://msdn.microsoft.com/en-us/library/system.threading.thread.start(v=vs.71).aspx)

  • ThreadStateException 线程已经启动。
  • SecurityException 调用者没有适当的 SecurityPermission。
  • OutOfMemoryException 没有足够的可用内存来启动这个线程。
  • NullReferenceException 此方法是在线程引用上调用的,该线程引用是空引用(在 Visual Basic 中为 Nothing)。

如果你把它放在里面,你会在你的线程中运行的代码中检测到异常。所以你想要的任何类型的异常(exception)。

关于c# - 运行线程时我的 Try Catch block 应该在哪里?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6493138/

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