Member 12926744 Ответов: 1

Метод занимает слишком много времени для обработки в приложении windows


У меня есть форма windows для автоматической загрузки всех файлов excel в папку. Он имеет две кнопки запуска и остановки и таймер. При нажатии кнопки "Пуск" начинается процесс. Проблема в том, что загрузка одного файла занимает почти полчаса.Процесс идет слишком медленно .Каждый файл excel имеет 500-600 строк. Кто-нибудь может мне помочь, пожалуйста.

Что я уже пробовал:

 private void strtbtn_Click(object sender, EventArgs e)
         {
             timer1.Enabled = true;
         }
<pre>private void timer1_Tick(object sender, EventArgs e)
         
{
             CallCustomer();
                CallCustomerError();
                lbl1.Text = "Process started.....";
                string source = "D:\\Excels";
                string destination = "D:\\Excelsuploaded";
                if (!(Directory.Exists(destination) && Directory.Exists(source)))
                    return;
                string[] Templateexcelfile = Directory.GetFiles(source);
                int filecount = Templateexcelfile.Length;
                foreach (string file in Templateexcelfile)
                {
                    uploadexcl(file);
                    lbl2.Text = counter.ToString();
                    counter = counter + 1;
                    fcount = fcount + 1;
                }
            }


<pre>

F-ES Sitecore

Вам нужно добавить запись таймера перед каждой строкой, чтобы получить журнал, который позволит вам определить, сколько времени занимает каждый бит, чтобы увидеть, где на самом деле находится узкое место. Учитывая, что мы не можем этого сделать, мы ничего не можем посоветовать, особенно когда важные биты кода, кажется, даже не перечислены (например, uploadexcl). Нет никакой волшебной настройки "сделать мой код в 10 раз быстрее", вы должны проанализировать то, что у вас есть, найти узкие места, а затем посмотреть, что (если что-то) можно сделать, чтобы улучшить эти узкие места.

1 Ответов

Рейтинг:
0

OriginalGriff

Цитата:
Кто-нибудь может мне помочь, пожалуйста.

В принципе, нет. Проблема в том, что мы понятия не имеем, что ваш uploadexcl метод работает, но часть "загрузка" подразумевает, что задействован интернет. То, что вы делаете, - это отправляете последовательный поток файлов на ваш сервер, один за другим, и этот процесс не может быть ускорен, если загрузка занимает всю пропускную способность загрузки интернет-соединения-как это будет по умолчанию. И скорость загрузки обычно намного, намного медленнее, чем загрузка: я получаю загрузку 40 Мбит / с и загрузку 8 Мбит / с. Если ваши файлы excel имеют значительный размер (а это будет зависеть от количества строк и ячеек, а также от содержимого ячеек), то каждый из них может занять значительное количество времени.
Проверьте размеры файлов в байтах, проверьте скорость загрузки вашего соединения, разделите один на другой-раз-10 (8 бит на байт плюс некоторые для накладных расходов), и у вас будет несколько секунд на файл. Затем используйте класс секундомера, чтобы проверить, как долго uploadexcl для каждого файла. Если цифры близки, вы не можете ускорить процесс, кроме как улучшив подключение к интернету.