关于c# semaphore 的这个异常
2015-09-21 15:47:29,332 [5862] ERROR xxx - System.Threading.ThreadAbortException:
at (wrapper managed-to-native) System.Threading.WaitHandle:WaitOne_internal (System.Threading.WaitHandle,intptr,int,bool)
at System.Threading.WaitHandle.WaitOne () <0x42480440 + 0x00074> in <filename unknown>:0
at MyLocker.Lock () <0x4041ee80 + 0x0001c> in <filename unknown>:0
at xxx (System.String fleetCode) <0x40125f90 + 0x0007f> in <filename unknown>:0现在的项目用了semaphore,现出现这个异常,msdn找不到这个异常说明(可能找的方法不对),请问这个异常是什么情况下产生的?
求解答或链接,谢谢。
MyLocker.Lock()是这样的:
public static void Lock(){
semaphore.WaitOne ();
}
...全文
相关推荐
C#多线程之Semaphore用法详解
Semaphore是C#中用于线程同步的一个重要工具,它允许我们控制对共享资源的访问,以确保不超过指定数量的线程可以同时访问。
C#实现多线程文件下载的实战源码解析
在多线程下载程序中,可能需要处理许多特定的错误情况,这时可以通过定义自定义异常类来增强错误处理的灵活性和可读性。全局异常处理通常在应用程序启动时设置,并在整个程序中保持一致性。在应用程序的主入口点设置全局异常处理:// 全局未处理异常的处理逻辑。
C#资源共享
`finally`块中的代码总会在资源不再需要时执行,无论是否抛出异常。总结,C#中的资源共享是一个复杂而关键的主题,涉及到线程同步、锁机制、进程间通信等多个方面。
c#多线程之生产者消费者
综上所述,C#中的生产者消费者模式涉及线程同步、数据结构、异常处理等多个知识点,理解和熟练运用这些概念对于编写高效、可靠的并发程序至关重要。
C#语言Semaphore类用法实例(多线程多端口使用端口控制)
为了确保资源的正确释放,推荐在`using`语句或`try...finally`块中使用Semaphore。这样即使发生异常,也能确保许可证最终被释放。



