信息
您所需的主题如下所示。但此主题未包含在此库中。

AbandonedMutexException 类

2013/12/13

当某个线程获取由另一个线程放弃(即在未释放的情况下退出)的 Mutex 对象时引发的异常。

System.Object
  System.Exception
    System.SystemException
      System.Threading.AbandonedMutexException

Namespace:  System.Threading
程序集:  mscorlib(位于 mscorlib.dll 中)

public class AbandonedMutexException : SystemException

AbandonedMutexException 类型公开以下成员。

  名称说明
公共方法AbandonedMutexException()使用默认值初始化 AbandonedMutexException 类的新实例。
公共方法AbandonedMutexException(String)使用指定错误消息初始化 AbandonedMutexException 类的新实例。
公共方法AbandonedMutexException(Int32, WaitHandle)用被放弃的互斥体的指定索引(如果可用)和表示该互斥体的 Mutex 对象初始化 AbandonedMutexException 类的新实例。
公共方法AbandonedMutexException(String, Exception)用指定的错误信息和内部异常初始化 AbandonedMutexException 类的新实例。
公共方法AbandonedMutexException(String, Int32, WaitHandle)用指定的错误信息、被放弃的互斥体的索引(如果可用)以及被放弃的互斥体初始化 AbandonedMutexException 类的新实例。
公共方法AbandonedMutexException(String, Exception, Int32, WaitHandle)用指定的错误信息、内部异常、被放弃的互斥体的索引(如果可用)以及表示该互斥体的 Mutex 对象初始化 AbandonedMutexException 类的新实例。
返回顶部

  名称说明
公共属性Data获取一个提供用户定义的其他异常信息的键/值对的集合。 (从 Exception 继承。)
公共属性HelpLink获取或设置指向此异常所关联帮助文件的链接。 (从 Exception 继承。)
公共属性HResult获取或设置 HRESULT(一个分配给特定异常的编码数字值)。 (从 Exception 继承。)
公共属性InnerException获取导致当前异常的 Exception 实例。 (从 Exception 继承。)
公共属性Message获取描述当前异常的消息。 (从 Exception 继承。)
公共属性Mutex获取导致异常的被放弃的互斥体(如果已知的话)。
公共属性MutexIndex获取导致异常的被放弃的互斥体的索引(如果已知的话)。
公共属性Source获取或设置导致错误的应用程序或对象的名称。 (从 Exception 继承。)
公共属性StackTrace获取在引发当前异常时调用堆栈上帧的字符串表示形式。 (从 Exception 继承。)
返回顶部

  名称说明
公共方法Equals(Object)确定指定的 Object 是否等于当前的 Object (从 Object 继承。)
受保护的方法Finalize允许 Object 在垃圾回收器回收该对象之前尝试释放资源并执行其他清理操作。 (从 Object 继承。)
公共方法GetBaseException当在派生类中重写时,返回 Exception,它是一个或多个并发的异常的根源。 (从 Exception 继承。)
公共方法GetHashCode用作特定类型的哈希函数。 (从 Object 继承。)
公共方法GetType获取当前实例的运行时类型。 (从 Exception 继承。)
受保护的方法MemberwiseClone创建当前 Object 的浅表副本。 (从 Object 继承。)
公共方法ToString创建并返回当前异常的字符串表示形式。 (从 Exception 继承。)
返回顶部

当某个线程放弃互斥体,在下一个获取互斥体的线程中会引发异常。该线程可能获取互斥体,这是因为它已经在互斥体上等待,或者因为它在以后才进入互斥体。

出现放弃的互斥体表明存在严重的编程错误。如果某个线程在未释放互斥体时便退出,受此互斥体保护的数据结构可能处于不一致的状态。在 .NET Framework 2.0 之前的版本中很难发现此类问题,这是因为当出现被放弃的互斥体而导致等待结束时不会引发异常。有关更多信息,请参见 Mutex 类。

如果此数据结构的完整性能得到验证,下一个请求此互斥体所属权的线程就可以处理此异常并继续。

下面的代码示例执行一个放弃五个互斥体的线程,演示了它们对 WaitOneWaitAnyWaitAll 方法的影响。为 WaitAny 调用显示 MutexIndex 属性的值。

说明注意:

WaitAny 方法的调用被某一放弃的互斥体中断。其他被放弃的互斥体仍可能导致后面的等待方法引发 AbandonedMutexException

Windows Phone OS

受以下版本支持: 8.0

此类型的所有公共 static(在 Visual Basic 中为 Shared) 成员都是线程安全的。但不保证所有实例成员都是线程安全的。

显示: