首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从多个线程使用SMO

从多个线程使用SMO
EN

Stack Overflow用户
提问于 2012-08-06 02:35:48
回答 1查看 628关注 0票数 0

我在应用程序中使用SQL Server管理对象。应用程序中对SMO对象的大多数操作都是从UI直接触发的。例如,用户操作导致从SMO对象(表、视图等)读取或写入属性的对象。

现在我想介绍一个后台操作,它将定期扫描一些对象(只读)。

我的问题是,这是否会导致SMO出现问题。从文档中我知道对象的实例成员不是线程安全的。因此,我的计划是,每当我从UI或后台线程访问每个SMO对象时,都对它设置一个锁。但是如果我同时访问两个不同的对象(例如View和Table)会发生什么呢?即使我只读取属性,对象也可能没有完全初始化,需要从数据库加载。所以在最坏的情况下,SMO需要同时初始化这两个对象。因为我不知道SMO是如何在内部处理这个问题的,所以我想知道是否有人知道SMO是否允许这样做,或者这是否会导致问题。

关于如何解决这个问题,还有其他的建议吗?我希望避免对整个SMO库使用全局锁...

谢谢!

EN

回答 1

Stack Overflow用户

发布于 2012-08-06 03:30:14

我使用SMO,我学到的是,如果你想进行一些常规的操作(脚本...)如果您想真正管理数据库对象,最好使用系统存储过程(这样SMO就不是另一个要理解的层).Using存储过程允许您锁定数据或不锁定数据,这将是一种可能的解决方案

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11819017

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档