C#线程问题
是否有一些关于在调用非托管
代码时使用多线程的一般建议?
我随机收到访问冲突错误,显然深入研究该非托管
代码没有多大意义。
我是否可以尝试一些方法,而不是将这些调用放入某种关键部分
来消除违规错误?
Are there some general advice about using multithreading when calling unmanaged
code?
I randomly receive access violation errors and obviously digging into that unmanaged
code doesn't make much sense.
Are there some approaches I could try instead of putting these calls into some sort of a critical section
to remove violation errors?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
这取决于您调用的非托管组件是否是线程安全的。
如果您仅在并行调用此代码时遇到访问冲突,那么您使用的组件似乎不是线程安全的。
使用 C#
lock()
语句确保其安全:It depends on whether the unmanaged component you are calling is programmed threadsafe or not.
If you are getting access violations only when calling this code in parallel it looks like the component you are using is not threadsafe.
Use the C#
lock()
statement to make it secure: