【发布时间】:2009-11-30 06:11:55
【问题描述】:
我在 .NET 中编写了一个 com 组件,如果我尝试在任何方法中锁定任何对象(由与我的 com 组件对话的非托管代码调用),我会得到一个异常。
目前我没有异常的确切文本,但也没有多大帮助。
所以我的问题是在什么情况下 lock(syncObject) 会抛出异常? 以下是一些事实:
- syncObject 不为空
- syncObject 尚未锁定
这是否与在 STA(单线程单元)或 MTA(多线程单元)中运行的被调用方有关?
【问题讨论】:
-
什么例外?你能提供一个调用堆栈吗?
-
您确实必须添加更多信息,并解释您究竟是如何“从非托管调用”的。
标签: .net multithreading synchronization locking com-interop