public void StartGenerating()
        {
            if (!AtLeastOneEnabled || TotalPercentage != 100)
            {
                return;
            }

            Reset();

            Task.Run(async() =>
            {
                Generate             = true;
                long currentFileSize = 0;
                try
                {
                    using (StreamWriter outFile = File.AppendText(OutFileName))
                    {
                        bool first = true;
                        while (Generate && currentFileSize < FileSizeInKB * 1024)
                        {
                            int rindex      = new Random().Next(RandomObjectCount);
                            RandomObject ro = randomObjects.ElementAt(rindex);
                            if (!ro.IsEnable)
                            {
                                continue;
                            }
                            await InvokeAsync(() =>
                            {
                                if (ro.GenerateNext())
                                {
                                    outFile.Write((first ? "" : ",") + ro.LastGeneratedObject);
                                    currentFileSize += 4;
                                    StateHasChanged();
                                    currentFileSize = new FileInfo(OutFileName).Length;
                                    first           = false;
                                }
                            });

                            //Thread.Sleep(100);
                        }
                    }
                }
                catch
                {
                }

                Generate = false;
            });
        }