Почему мой код продолжает отставать?
Привет, я работал над этим кодом в c# in asp.net... Он бежал, но отставал. Он не падает, но он не показывает, что он должен делать, если я не удалю цикл получения моего файла и вывода его в текстовое поле.
Эта программа проверяет наличие файла в каталоге, если его там нет, она перезапускает цикл, если он там есть, она отправляет его, а затем удаляет его повторы...
Что я уже пробовал:
protected void Button5_Click(object sender, EventArgs e) { if (TextBox1.Text == "" || TextBox1.Text.Contains(" ")) { Button6.Visible = true; } else { if (Directory.Exists("C:\\Users\\Logan\\Documents\\Visual Studio 2015\\Projects\\TFR\\data\\codes\\" + TextBox1.Text)) { Button6.Visible = false; Button5.Visible = false; TextBox1.Visible = false; TextBox2.Visible = true; SendText("Starting privatefeed using the code \"" + TextBox1.Text + "\""); SendText("Developed and created by Logan Risen!"); SendText("Our discord: https://discord.gg/vJcx3sz"); SendText("-----------------------------------------------------------------------------"); Task wait = Task.Delay(2000); wait.Wait(); Run(); } else { Button6.Visible = true; } } } /* private void Start() { Task t = Task.Delay(8000); t.Wait(); Run(); } */ private void Run() { // System.Threading.Thread.Sleep(1000); try { string latest = File.ReadAllText("C:\\Users\\Logan\\Documents\\Visual Studio 2015\\Projects\\TFR\\data\\codes\\" + TextBox1.Text + "\\group.txt"); Task delay = Task.Delay(5000); delay.Wait(); if (File.Exists("C:\\Users\\Logan\\Documents\\Visual Studio 2015\\Projects\\TFR\\data\\codes\\" + TextBox1.Text + "\\group.txt")) { if (latest == "") { Console.WriteLine("N1"); } else { if (latest == last) { Console.WriteLine("N2"); } else { SendText(latest); } } last = latest; if (latest == "") { Console.WriteLine("N2"); } else { Console.WriteLine("D"); File.Delete("C:\\Users\\Logan\\Documents\\Visual Studio 2015\\Projects\\TFR\\data\\codes\\" + TextBox1.Text + "\\group.txt"); } Run(); } else { Run(); } } catch { Run(); } } } }
NotPolitcallyCorrect
Вероятно, потому, что вы вызываете Run рекурсивно и добавляете задержки в свой код без видимой причины и на веб-странице, которая никогда не должна иметь консоли.Что угодно или задержки......
LogandadLoga LogandadLoga
Ну и как я могу это исправить? Задержки должны остановить переполнение...
Afzaal Ahmad Zeeshan
Переполнения останавливаются, гарантируя, что данные не вставляются в те места, куда они не должны идти, или когда размер достигается. Пауза или отсрочка не помогут.
Во-вторых, рекурсивный шаблон программирования является одной из причин переполнения.
LogandadLoga LogandadLoga
Ну, ты можешь помочь мне починить его?
Afzaal Ahmad Zeeshan
Не могли бы вы объяснить немного подробнее, что вам нужно сделать с этим, чтобы мы могли решить эту проблему?
LogandadLoga LogandadLoga
Эта программа проверяет наличие файла в каталоге, если его там нет, она перезапускает цикл, если он там есть, она отправляет его, а затем удаляет его повторы...
NotPolitcallyCorrect
Больше похоже на то, что вам нужен наблюдатель файловой системы.
LogandadLoga LogandadLoga
Да! Я хочу, чтобы он обнаруживал новые файлы, которые приходят...
NotPolitcallyCorrect
Затем создайте наблюдатель файловой системы и используйте соответствующие инструменты для этой работы, что с вероятностью 99% означает, что это не веб-приложение.
LogandadLoga LogandadLoga
это веб-приложение