Я использую C# Windows Forms с помощью Visual Studio 2010. Не позволяйте компоненту Console путать вас, это определенная пользователем вещь, а не фактическая консоль. Поэтому у меня есть метод, который печатает файл по строкам. Я должен заставить его отображаться медленно, так что в настоящее время я использую Thread.Sleep, чтобы замедлить печать строки за строкой. Я не могу использовать это, потому что он замораживает некоторые другие компоненты в программе. Я надеялся увидеть, можно ли это сделать с помощью таймера. Хотя все примеры, которые, как я вижу, используются с таймером, обычно имеют метод, вызываемый таймером. В середине метода нет задержки таймера. Поэтому я не уверен, как я могу использовать таймер здесь.Использование таймера для задержки метода линии строки по строке C#
public void SlowPrint(string FileName)
{
string line;
string tempFileName;
string MyFilesDir = "..\\..\\myFolder\\";
tempFileName = Path.Combine(MyFilesDir, FileName);
if (System.IO.File.Exists(tempFileName))
{
System.IO.StreamReader file = new System.IO.StreamReader(tempFileName);
while (((line = file.ReadLine()) != null))
{
Console.WriteLine(line);
System.Threading.Thread.Sleep(700); //This has to go
}
file.Close();
}
else
{
Console.WriteLine("Error " + tempFileName + " does not exists");
}
Console.ReadLine();
}//end SlowPrint method
попробовать 'ждут Task.Delay (700),' –
Если это действительно WinForms то вы, вероятно, не хотят, чтобы держать приложение в заложниках петля со сном посредине (независимо от того, как достигается этот «сон»). Переместите StreamReader на уровень класса, чтобы он мог получить доступ к событию Timer Tick(). Таким образом, вы можете лучше взаимодействовать с пользовательским взаимодействием и отменить «цикл», если это необходимо. –