如何在 C# 中创建某种命令 queue?
How can I create a command queue of sorts in C#?
我创建了一个 winforms UI,它通过串行端口向具有已知且简单的命令接口的 MCU 发送和接收字符串。我想知道如何创建命令链或 queue 命令,或者是否已经有一些内置的方法来执行此操作?
我在想这个链会包含一个header,它指向下一个要执行的命令的位置。每个命令都将与指向下一个命令的指针相关联,最终导致指向 NULL 的指针。每当执行命令时,下一个命令字符串将更新到 header 指向的位置,并且每个后续命令都会向上移动。
如果有人能指出我正确的方向或提供一些建议,那就太好了。
如果您只需要一个队列数据结构,您可以使用 System.Collections.Generic
命名空间中的内置 Queue<T>
类型。它具有所有基本的队列功能。请参阅文档 here。
示例代码(未测试,仅作为快速示例):
using System.Collections.Generic;
var queue = new Queue<string>();
...
queue.Enqueue("CMD1");
queue.Enqueue("CMD2");
...
var nextCommand = queue.Peek(); // will NOT remove the peek item
...
var nextCommandRemoved = queue.Dequeue();
...
我创建了一个 winforms UI,它通过串行端口向具有已知且简单的命令接口的 MCU 发送和接收字符串。我想知道如何创建命令链或 queue 命令,或者是否已经有一些内置的方法来执行此操作?
我在想这个链会包含一个header,它指向下一个要执行的命令的位置。每个命令都将与指向下一个命令的指针相关联,最终导致指向 NULL 的指针。每当执行命令时,下一个命令字符串将更新到 header 指向的位置,并且每个后续命令都会向上移动。
如果有人能指出我正确的方向或提供一些建议,那就太好了。
如果您只需要一个队列数据结构,您可以使用 System.Collections.Generic
命名空间中的内置 Queue<T>
类型。它具有所有基本的队列功能。请参阅文档 here。
示例代码(未测试,仅作为快速示例):
using System.Collections.Generic;
var queue = new Queue<string>();
...
queue.Enqueue("CMD1");
queue.Enqueue("CMD2");
...
var nextCommand = queue.Peek(); // will NOT remove the peek item
...
var nextCommandRemoved = queue.Dequeue();
...