我编写了一个设置参数的控制台 C# 程序(我从项目->调试选项中给出了参数),我试图从以太网和串行端口获取数据。
我成功设置了 args 参数,但程序在控制台突然打开时出现超时错误,并且就像处于无限循环中一样,但没有循环。(在读取 while 之前发生错误)string filename = args[4];
对于那些想了解这些参数是什么的人;1 = IP,[2] = 端口号,[3] = 端口名称(COM3),[4] = 文件名。
[编辑] 考虑到我可能同时从以太网和串行端口的两个连接获取数据,超时是为了防止数据丢失。
另外我想说的是,添加DataReceived += new SerialDataReceivedEventHandler(ProcessReceivedData);
i 而不是 while 没有任何好处,因为它再次发生在 while 循环之前。
有人有什么主意吗?
static int Main(string[] args)
{
int err = 0;
if (args.Length == 5)
{
IPAddress IP = IPAddress.Parse(args[1]);
int CmdPort;
if (int.TryParse(args[2],out CmdPort))
{
string filename = args[4];//takes filename
String root = @".\\"; //DEFAULT EXE PATH ROOT
string path_combined;
path_combined = Path.Combine(root, filename);
StreamWriter sw;
try
{
sw = File.AppendText(path_combined);
p = new SPWrapper(IP, CmdPort, args[3], sw);
if (p.Init())
{
while (!Console.KeyAvailable)
{
p.GetMessage();
Thread.Sleep(100);
}
p.Close();
}
sw.Flush();
sw.Close();
}
catch (System.IndexOutOfRangeException ex)
{
System.ArgumentException argEx = new System.ArgumentException("File creation failed!", ex);
err = -2;
throw argEx;
}
}
繁星coding
当年话下
相关分类