автоматическое сохранение файла, который уже сохранен C# с использованием таймера

код, который я упоминаю ниже, показывает мою функцию автоматического сохранения. Где я должен вызвать этот метод для автоматического сохранения моего текста при наборе текста через каждые 5 секунд. Пожалуйста, объясните мне

 private void timer1_Tick(object sender, EventArgs e)
        {
            System.Windows.Forms.Timer tmr = new System.Windows.Forms.Timer();
            tmr.Interval = 5000;

            tmr.Start();
            File_Save_MenuItem_Click(sender,e);

            tmr.Stop();

        }

person Ema_wat    schedule 26.03.2018    source источник
comment
Попробуйте прочитать этот пост, как использовать таймер С#, это может помочь вы понимаете, как работает таймер. Но в вашем случае лучше не использовать таймер автосброса, а остановить его перед сохранением и запустить после окончания сохранения.   -  person Julo    schedule 26.03.2018


Ответы (1)


Во-первых, давайте подумаем об этом как человек. Если бы я писал книгу на листе бумаги, и вы хотели бы убедиться, что у вас есть резервная копия того, что я делал, вы, вероятно, сделали бы фотокопию страницы, когда я ее заканчивал. . Ты бы не стал этого делать, если бы я ничего не изменил.

С точки зрения компьютера вы сказали, что хотите сохранять файл каждые 5 секунд (это очень часто!!), однако вы не объяснили, как вы начали.

Я собираюсь предположить, что вы сделали как приложение для блокнота - в вашем приложении для блокнота есть текстовое поле, в котором находится ваш файл, все, что вам нужно сделать, это иметь таймер, который говорит через 5 секунд, остановить таймер и сохранить файл .. это все. Затем при изменении текстового поля, если таймер отключен, запустите таймер.

редактировать:

В приведенном выше коде вы создали событие таймера, но затем внутри него вы создаете таймер, не устанавливая ничего, что должно произойти, когда время истекло.. так что я предполагаю, что этот код никогда не происходит

person BugFinder    schedule 26.03.2018
comment
У меня есть поле RichText, которое. Я хочу сохранять текст каждые 5 секунд, пока я печатаю. Что я сделал, так это. Я добавил таймер. Затем добавил эту реализацию private void timer1_Tick (отправитель объекта, EventArgs e) { System.Windows. Forms.Timer tmr = new System.Windows.Forms.Timer(); тмр.Интервал = 500; тмр.Старт(); File_Save_MenuItem_Click (отправитель, e); тмр.Стоп(); } где я должен вызвать его, чтобы заставить его работать. - person Ema_wat; 26.03.2018
comment
Как указано выше, если в вашей форме для timer1 установлено значение 5000, вам не нужно, чтобы tmr ничего не делал ... тогда в onchange - в случае richtextbox Modifiedchanged - person BugFinder; 26.03.2018
comment
Я реализовал только эту функцию. Что мне нужно сделать, чтобы вызвать функцию автоматического сохранения. Не могли бы вы предоставить код, как это сделать? - person Ema_wat; 26.03.2018