【发布时间】:2012-04-25 10:28:15
【问题描述】:
我想做的是创建一个在事件接收器FeatureActivated 上启用的计时器。我想使用此计时器每天执行一次,以检查列表中的某些项目并更新这些项目的状态。
我可以创建和启用计时器 - 没问题。但是当我尝试访问 SPSite 对象以获取列表项时,我收到以下错误:
共享点子集 OM 已为当前线程禁用。
计时器在导致问题的单独线程中运行。
我的问题是:如何访问 SPSite 对象以从单独的线程访问列表项?
注意:我正在使用计时器,因为我无法在沙盒解决方案中使用计时器作业。谢谢。
【问题讨论】:
-
你说的定时器是什么意思? Threading.Timer 或 Timers.Timer 之类的类的实例?
-
您使用什么代码来获取 SPSite 对象以及您的网站集 URL 是什么?
-
是 Timers.Timer 类的实例。我这样创建 SPSite 对象:
using (SPSite siteCollection = new SPSite("http://localhost:1548")) { web = siteCollection.OpenWeb(); SPListItemCollection listItems = myWeb.Lists["Configuration"].Items; }
标签: multithreading sharepoint sandbox