English 中文(简体)
分配给一个SPListItem油田的明显拖延
原标题:Unexplained delay when assigning a string to an SPListItem field
  • 时间:2009-09-21 13:36:13
  •  标签:

我在使用“共享点目标”模式时,使用与“共享点”安装相同的服务器上的灯光灯,并使用以下代码:

SPSite MySite = new SPSite("http://server/");
SPWeb MyWeb = MySite.OpenWeb();
MyWeb.AllowUnsafeUpdates = true;
SPList MyList = MyWeb.Lists["Test"];

const string EmptyQuery = "0";
SPQuery q = new SPQuery { Query = EmptyQuery };

String Source = "Test String";

for( int i = 1; i < 1000; i++)
{
    Console.WriteLine("Creating new item");

    SPListItem MyItem = MyList.GetItems(q).Add();

    Console.WriteLine("Created new item");

    Console.WriteLine("Assigning Title Value");

    MyItem["Title"] = Source.ToString();

    Console.WriteLine("Assigned Title Value");

    MyItem.Update();
}

在“转让所有权价值”和“转让所有权价值”之间,我第二次停顿下来。

当我把该守则作为网络的一部分加以部署时,其即时性似乎只是当该守则被作为单一应用而部署时。

Edit: More information! 当我有一个以上的领域被分配时,其always 第一个领域进展缓慢,任何后续任务都比预期的要快。 如果我改变周围地区的次序,这不会对拖延产生影响——第一个领域总是缓慢的。

任何想法?

最佳回答

这样做是因为在使用集束器之前,你不能进入任何领域。 如果你首先阅读至少一个领域的话,你可能会看到稍有拖延,而且不会拖延,因为根据“条码”(<>SetValue()电话<条码>Ensure FieldCollection(<>_>_>,如果该清单项目的田地已经有人居住的话,必须回到<条码>。 SPList sfield Collection.

此外,这并不是在您的法典中,而是确保你在重新做时处置您的<编码>SPWeb和SPSite的物体。 良好的模式是使用<条码>,使用:

using(SPSite site = new SPSite("url"))
{
    using(SPWeb web = site.OpenWeb())
    {
        //do stuff
    }
}
问题回答

首先,我建议使用

using (SPSite MySite = new SPSite("http://server/"))
{
   using (SPWeb MyWeb = MySite.OpenWeb())
   {
      //do your stuff here
   }
}

你可以在更新外地之前,通过阅读该项目的所有领域,检查“确保现场”。 如果在你第一个领域得到立即更新,你可以确信这是原因。

这可能是释放和 De之间的区别,也可能是它有错的ched。 Try changing to a Release Building, and if that don t worktries conducted it without the debugger (Ctrl+F5 inViewroom)





相关问题
热门标签