多线程执行 Dos命令的问题

明缘 2009-10-15 01:42:43
需求如下:
用C#开发,有个数不固定的几个IP段 比如 “192.168.1”“10.2.5 ”192.168.3“ ”10.2.6 “
现在希望做一个程序使用Ping nbtstat 命令来获得上述IP段内所有存在机器的 IP Address, Mac Address,Host Name
由于IP段不止上面提到的那几个,因此要使用线程来做,如果哪位知道 请贴出Demo。

现在本人已经实现了 用进程来做,网上的例子也较多,比较容易,主要是在使用多线程开发的时候,遇到了问题,
不知道如何在线程里面执行Dos命令。请知道的告诉一下。再次强调的是如果是进程
( ProcessStartInfo info1 = new ProcessStartInfo();
Process process1 = new Process();
......
process1 = Process.Start(info1);
)
类似的代码就不要贴了。


...全文
161 7 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
明缘 2009-10-21
  • 打赏
  • 举报
回复
偶实现了,速度确实有提升 不过 告诉看贴的各位,最好,不要试图使用Dos命令来解决这个问题,可以用
C#自带的函数 来实现Ping命令对应的功能 速度上提升很大。
BATTLERxANGE 2009-10-16
  • 打赏
  • 举报
回复
这种PING一般是占网络资源,同时响应N个网络肯定要比一个一个来快的多!所以速度应该会有很大的提升!
明缘 2009-10-16
  • 打赏
  • 举报
回复
没有用过的话,谁能告诉我一下 我在1楼写的东西理解的对不对啊,我到目前为止认为,假如有3个以上的IP Segment采用线程的方式来查询的话,有2个弊端 1,难以控制,因为在实际程序执行的时候,有多少个IP Segment不知道。2,最重要的是 我认为用线程执行IP Seg查询的方式 对于单核CPU的系统来说 和不用多线程而用 进程的方式一个一个来查询的方式所花费的时间 差不多,比如进程方式花费15分钟,多线程方式可能也得14分钟左右,根本不会 有很大的提升,比如多线程的时候只用7分钟左右即可得到结果。
明缘 2009-10-16
  • 打赏
  • 举报
回复
Ls Good.
little_elf_dws 2009-10-15
  • 打赏
  • 举报
回复
用多线程执行这个没试过...不过原来在BackGroudWorker里面调用过控制台程序...把BackGroudWorker改一下分离成用多线程应该可以的吧...用多线程的话要注意线程状态控制...不然很容易出错的...
明缘 2009-10-15
  • 打赏
  • 举报
回复
Help!
明缘 2009-10-15
  • 打赏
  • 举报
回复
还有个问题:像这样的需求 使用多线程对于单核的CUP来说能提高执行效率么?
比如 我使用多线程 同时查询3个IP段的机器的信息,和用进程的方式 一个IP段的查询完后在查询下一个
效率会高出很多么?

111,111

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • AIGC Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧