Hey, Ive got this problem:

Line 20 (LOOT_FromContainer(container) I need that to use as Invoke, because the process I want to exec takes some time, so ServerMessageHandler wont handle it...

If i just simply rewrite that line to LOOT_FromContainer.BeginInvoke(container); then i have this error:

error CS0119: 'LOOT.LOOT_FromContainer(Phoenix.Serial)' is a 'method', which is not valid in the given context

Im new in C#, came from PHP, and about Invoke I dont know much realy . Ive been trying to sort this out for a coupe of days, not even google helped...

I would appriciate some explanation with the code what would work . Thanks

Code:
      [ServerMessageHandler(0x3C)]
        public CallbackResult ContainerContains(byte[] data, CallbackResult prevResult)
        {
         PacketReader reader = new PacketReader(data);
         reader.Skip(3);
         
         ushort len = reader.ReadUInt16();
         for (int i = 0; i < len; i++)
         {
            Serial serial = (Serial)(reader.ReadUInt32());
            ushort graphic = (ushort)(reader.ReadUInt16());
            
            reader.Skip(7);
            
            Serial container = (Serial)(reader.ReadUInt32());
            ushort color = (ushort)(reader.ReadUInt16());
            
            if (((int)graphic == 0x0E76) && ((int)color == 0x049A))
            {
               LOOT_FromContainer.BeginInvoke(container);
            }
         }
         return CallbackResult.Normal;
        }

      
      [Command]
      public static void LOOT_FromContainer(Serial target)
      {
         UOItem lootCorpse = new UOItem(target);
            if (lootCorpse.Graphic == 0x2006)
            {
                if (((draw == 1) && (World.Player.Backpack.AllItems.Count(draw_knife[0], draw_knife[1]) > 0)) || (World.Player.Layers[Layer.RightHand].Exist))
                {
                    if ((lootCorpse.Amount != 400) && (lootCorpse.Amount != 401))
                    {
                        if (draw == 0)
                        {
                            UO.WaitTargetObject(lootCorpse);
                            UO.UseObject(World.Player.Layers[Layer.RightHand].Serial);
                        }
                        else
                        {
                            UO.WaitTargetObject(lootCorpse);
                            UO.UseType(draw_knife[0], draw_knife[1]);
                        }
                        UO.Wait(500);
                    }
                }
                else
            {
                   UO.Print("Neni cim rezat, pouze lootim");
            }

                for (int i = 0; i < loot.Length; i++)
                {
               if (lootCorpse.Items.Count(loot[i][0], loot[i][1]) > 0)
                    {
                  if (loot[i][2] == 1)
                  {
                     if (loot[i][4] == 1)
                     {
                        UO.MoveItem(lootCorpse.Items.FindType(loot[i][0], loot[i][1]), 0, Aliases.GetObject("loot_bag"), loot[i][5], loot[i][6]);
                          UO.Wait(200);
                     }
                     else
                     {
                        UO.MoveItem(lootCorpse.Items.FindType(loot[i][0], loot[i][1]), 0, World.Player.Backpack);
                            UO.Wait(200);
                     }
                  }
                    }
                }
            }
      }