在 Linux 系统中安装软件的时候往往会有 “#” 的进度条,或者“/”、“|”、“-”、“\”的等待动画,而有时做控制台应用程序的时候,遇到大量业务处理的时候,程序会进行大量运算,此时如果 Dos 窗口没有任何输出或者提示,此时就不能知道程序是否在运行状态。
于是我便写了这么一个方法,用于多线程启动这个动画,等主线程业务处理结束之后再结束这个动画即可。代码如下所示:
using System;
using System.Threading;
namespace Demo
{
class Program
{
static void Main(string[] args)
{
Thread thread = new Thread(new ThreadStart(Flashing));
thread.Start();
Thread.Sleep(10000);
// 非 net 5.0 用 Abort
//thread.Abort();
// net 5.0 用 Interrupt
thread.Interrupt();
Console.Write('\u0008');
Console.WriteLine("程序运行结束");
Console.ReadLine();
}
public static void Flashing()
{
try
{
string loading = "-";
while (true)
{
Console.Write('\u0008');
switch (loading)
{
case "\\": loading = "|"; break;
case "|": loading = "/"; break;
case "/": loading = "-"; break;
case "-": loading = "\\"; break;
}
Console.Write(loading);
Thread.Sleep(100);
}
}
catch (Exception) { }
}
}
}
哈哈!程序跑起来,看到这个动画是不是感觉有点意思呢?虽然没啥用,但在有些时候却能够让我们的程序交互很友善。