gpt4 book ai didi

c# - 将字符串列表作为参数传递给控制台应用程序

转载 作者:可可西里 更新时间:2023-11-01 11:36:31 24 4
gpt4 key购买 nike

我需要将字符串列表作为参数传递给控制台应用程序(使用 C# 开发)。控制台应用程序以 System.Diagnostics.Process.Start 启动,如下所示:

string fname = "testDoc";
List<string> myList; //initialized elsewhere

Process console = Process.Start("Client.exe", "-filename:"+fname+ " -list:"+myList);

我怎样才能做到这一点?

最佳答案

运行

Process console = Process.Start("Client.exe", "-filename:" + fname + " -list:" + myList)

将执行 myList.ToString() 并将转换为:

Client.exe -filename:testDoc -list:System.Collections.Generic.List`1[System.String]

这不是你想要的。尝试

Process console = Process.Start("Client.exe", "-filename:" + fname + " -list:" + String.Join(",", myList)) 

或类似的东西。

更新

当然,您可能想考虑一些更文明的方法来将数据传递给该进程。常见的方式包括:

  • 数据库
  • 文件系统(文件)
  • WCF

更新

考虑到评论中提供的上下文,我会选择在服务器上运行一个完全独立的 Windows 服务(不间断,不调用),并使用用于同步的数据库:

  • 包含表 Tasks 的数据库,包含输入数据输出数据 和您可能需要的任何其他列(例如一些日期或用户 ID)
  • 出现要处理的数据时网页将行插入该表
  • windows 服务重复(每 x 秒)查询表中未处理的任务并执行任务(如果有);结果保存在 output data 列中
  • 根据用户请求网页查询给定任务并显示其状态,如果存在则显示输出数据

随着用户流量的增长,这种方法更加稳健并且扩展性更好。理想情况下,服务本身会为单独的任务生成工作线程,以利用多核。有了这样的架构,就有很多方法可以优化性能和监控任务。

关于c# - 将字符串列表作为参数传递给控制台应用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10008671/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com