private void AddProduct()
 {
     sizeSem.Wait();
     CurrSize++;
     //Console.WriteLine($"Resource has been produced by Factory {Name}");
     //Console.WriteLine(this);
     Storehouse.SignalNewResource();
     sizeSem.Release();
 }
 public void Run()
 {
     //Console.WriteLine($"{this.ToString()} Started...");
     //Console.WriteLine($"{this.ToString()} waitting for resources {needResources}...");
     Storehouse.AddTask(new Tasks.GetResourcesTask(this, getResourceSem, needResources));
     getResourceSem.Wait();
     LogEndWork();
     //Console.WriteLine($"{this.ToString()} Back to labolatory...");
     StateLogger.DrawState($"{this.ToString()} Back to labolatory...");
 }