C#线程和多用户程序

时间:2018-07-13 11:03:31

标签: c# multithreading serial-port

我有一个程序可以用作串行终端的后端。此ID旨在作为辐射道具。我可以通过一个串口和一个主程序正常工作。

但是我想使它成为一个功能齐全的多用户环境,该环境可以在串行端口上的某个选择中打开,并且每个环境都在单独的线程中运行。

我不是要蓝彼德奇迹,而是“这是我之前制造的”。我只是帮助您了解踩踏如何正常工作。

到目前为止,我有一个简单的线程化应用程序,它可以在终端上移动光标,写入当前时间并每分钟将光标移回一次。

该代码在这里:

static void StartClock()
{
TimerCallback tmCallback = WriteTime;
Timer timer = new Timer(tmCallback, null, 60000, 60000);
}

static void WriteTime(object WT)
{
string TimeDate = DateTime.Now.ToString();
char[] TimeDateArr = TimeDate.ToCharArray();
string test = "";
Array.Reverse(TimeDateArr);
Array.Resize(ref TimeDateArr, 8);
Array.Reverse(TimeDateArr);
Array.Resize(ref TimeDateArr, 5);
foreach (char c in TimeDateArr)
{
test = test + c.ToString();
}
PositionCursor(75, 1);
write(test);
PositionCursor(2, 23);
}

我的问题不是完全了解踩踏的工作原理。

如果有人能正确解释其中的哪些部分正在做,也许我会如何看待开始做的事情。

预先感谢

1 个答案:

答案 0 :(得分:-1)

system.Timers.Timer和System.Threading.Timer之间有区别。 我认为您需要这样的东西;

static void Main(string[] args)
    {
        var timer = new System.Timers.Timer
        {
            AutoReset = true,
            Interval = 100,
            Enabled = true
        };
        timer.Elapsed += TimerOnElapsed;
        timer.Start();

        Console.ReadKey();
    }

    private static void TimerOnElapsed(object sender, ElapsedEventArgs elapsedEventArgs)
    {
        Console.WriteLine("do stuff on a interval");
    }