C#线程问题

时间:2011-05-10 13:42:24

标签: c# multithreading unmanaged

在调用unmanaged代码时是否有一些关于使用多线程的一般建议?

我随机收到访问冲突错误,显然深入研究unmanaged代码没有多大意义。

我可以尝试一些方法,而不是将这些调用放入某种critical section来删除违规错误吗?

1 个答案:

答案 0 :(得分:1)

这取决于您调用的非托管组件是否编程为线程安全。

如果您仅在并行调用此代码时遇到访问冲突,则看起来您使用的组件不是线程安全的。

使用C#lock()语句使其安全:

private static readonly myLockObject = new object();

...

lock (myLockObject)
{
   CallMyUnsafeCode();
}