跑步
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))
或类似的东西。
更新
当然,您可能需要考虑一些更文明的方法将数据传递到该进程。常见的方法包括:
更新
鉴于评论中提供的上下文,我会选择在服务器上运行一个完全独立的 Windows 服务(不间断,不调用),数据库用于同步:
Tasks
带有带有列的表的数据库input data
,output data
以及您可能想要的任何其他内容(例如某些日期或用户 ID)
- 当要处理的数据出现时,在该表中插入行的网页
- Windows 服务重复(每 x 秒)查询表中未处理的任务并执行任务(如果有);结果保存在
output data
列中
- 根据用户请求网页查询给定任务并显示其状态,如果存在则显示输出数据
随着用户流量的增长,这更加强大并且可以更好地扩展。理想情况下,服务本身会为单独的任务生成工作线程,以利用多个内核。有了这样的架构,就有很多方法可以优化性能和监控任务。