我正在使用C#Windows窗體使用Visual Studio 2010.不要讓控制檯部分混淆你這是用戶定義的事情而不是實際的控制檯。所以我有一個逐行打印文件的方法。我必須使它看起來慢慢打印,所以我目前使用Thread.Sleep來逐行減速打印。我無法使用它,因爲它凍結了程序中的其他組件。我希望看到這是否可以用計時器來完成。雖然我看到所有用於定時器的例子通常都有一個被定時器調用的方法。在方法中間沒有計時器延遲。所以我不確定在這裏如何使用計時器。使用計時器來逐行延遲readline方法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移出到Class級別,以便可以通過Timer Tick()事件訪問它。這樣您可以更好地處理用戶交互,並在必要時取消「循環」。 –