private void AddAllObjects() { client.Network.CurrentSim.ObjectsPrimitives.ForEach( new Action<Primitive>( delegate(Primitive prim) { if (prim.ParentID == 0) //root prims only { ObjectsListItem item = new ObjectsListItem(prim, client, lbxPrims); listItems.Add(prim.LocalID, item); item.PropertiesReceived += new EventHandler(item_PropertiesReceived); item.RequestProperties(); } } )); }
//Separate thread private void Objects_OnNewPrim(Simulator simulator, Primitive prim, ulong regionHandle, ushort timeDilation) { if (prim.ParentID != 0) return; lock (listItems) { if (listItems.ContainsKey(prim.LocalID)) return; BeginInvoke(new MethodInvoker(delegate() { ObjectsListItem item = new ObjectsListItem(prim, client, lbxPrims); listItems.Add(prim.LocalID, item); item.PropertiesReceived += new EventHandler(item_PropertiesReceived); item.RequestProperties(); })); } }