仓酷云

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 571|回复: 8
打印 上一主题 下一主题

[学习教程] ASP.NET编程:使用Visual C#完成Windows管道手艺

[复制链接]
莫相离 该用户已被删除
跳转到指定楼层
楼主
发表于 2015-1-16 22:32:36 | 只看该作者 回帖奖励 |正序浏览 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
无论谁倒了对双方阵营的粉丝们也是有害无益。visual|window  管道手艺一样平常接纳WindowAPI来完成,比来我试着用C#来完成Windows管道手艺,发明C#自己便利的历程线程机制使事情变得复杂至极,顺手纪录一下,保举给人人。

  起首,我们能够经由过程设置Process类,猎取输入接口,代码以下:

Processproc=newProcess();
proc.StartInfo.FileName=strScript;
proc.StartInfo.WorkingDirectory=strDirectory;
proc.StartInfo.CreateNoWindow=true;
proc.StartInfo.UseShellExecute=false;
proc.StartInfo.RedirectStandardOutput=true;
proc.Start();

  然后设置线程一连读取输入的字符串:

eventOutput=newAutoResetEvent(false);
AutoResetEvent[]events=newAutoResetEvent[1];
events[0]=m_eventOutput;

m_threadOutput=newThread(newThreadStart(DisplayOutput));
m_threadOutput.Start();
WaitHandle.WaitAll(events);

  线程函数以下:

privatevoidDisplayOutput()
{
 while(m_procScript!=null&&!m_procScript.HasExited)
 {
  stringstrLine=null;
  while((strLine=m_procScript.StandardOutput.ReadLine())!=null)
  {
   m_txtOutput.AppendText(strLine+"
");
   m_txtOutput.SelectionStart=m_txtOutput.Text.Length;
   m_txtOutput.ScrollToCaret();
  }
  Thread.Sleep(100);
 }
 m_eventOutput.Set();
}

  这里要注重的是,利用以下语句使TextBox显现的老是最新增加的,而AppendText而不利用+=,是由于+=会形成全部TextBox的回显使得全部显现地区闪灼

m_txtOutput.AppendText(strLine+"
");
m_txtOutput.SelectionStart=m_txtOutput.Text.Length;
m_txtOutput.ScrollToCaret();

  为了不堵塞主线程,能够将全部历程放到一个另外一个线程里就能够了
我觉得这个学习方法很重要。初学者应该跟我一样有同样一个毛病。那就是急于求成。很想就自己做出个小小的系统来。可真要动手,却又茫然而不知所措。为什么会这样呢?因为我们没有耐心去学习基础知识。写根本看不到什么效果的测试代码。
小女巫 该用户已被删除
9#
发表于 2015-3-21 21:41:11 | 只看该作者
业务逻辑代码都不必做任何改动;继承性和多态性使得代码的可重用性大大提高,你可以通过继承已有的对象最大限度保护你以前的投资。并且C#和C++、Java一样提供了完善的调试/纠错体系。
不帅 该用户已被删除
8#
发表于 2015-3-15 07:35:59 | 只看该作者
业务逻辑代码都不必做任何改动;继承性和多态性使得代码的可重用性大大提高,你可以通过继承已有的对象最大限度保护你以前的投资。并且C#和C++、Java一样提供了完善的调试/纠错体系。
admin 该用户已被删除
7#
发表于 2015-3-7 14:07:19 | 只看该作者
同时也感谢博客园给我们这个平台,也感谢博客园的编辑们做成专题引来这么多高人指点。
灵魂腐蚀 该用户已被删除
6#
发表于 2015-2-24 23:36:43 | 只看该作者
由于JSP/Servlet都是基于Java的,所以它们也有Java语言的最大优点——平台无关性,也就是所谓的“一次编写,随处运行(WORA–WriteOnce,RunAnywhere)”。除了这个优点,JSP/Servlet的效率以及安全性也是相当惊人的。
金色的骷髅 该用户已被删除
5#
发表于 2015-2-8 07:18:51 | 只看该作者
它可通过内置的组件实现更强大的功能,如使用A-DO可以轻松地访问数据库。
兰色精灵 该用户已被删除
地板
发表于 2015-2-2 21:42:50 | 只看该作者
是指转换后的Servlet程序代码的行数。这给调试代码带来一定困难。所以,在排除错误时,可以采取分段排除的方法(在可能出错的代码前后输出一些字符串,用字符串是否被输出来确定代码段从哪里开始出错)。
精灵巫婆 该用户已被删除
板凳
发表于 2015-1-25 10:37:35 | 只看该作者
asp.net最主要特性包括:◆编程代码更简洁◆网站可实现的功能更强大◆运行效率高◆节省服务器的动作资源
愤怒的大鸟 该用户已被删除
沙发
发表于 2015-1-19 16:20:09 | 只看该作者
比如封装性、继承性、多态性等等,这就解决了刚才谈到的ASP的那些弱点。封装性使得代码逻辑清晰,易于管理,并且应用到ASP.Net上就可以使业务逻辑和Html页面分离,这样无论页面原型如何改变。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|仓酷云 鄂ICP备14007578号-2

GMT+8, 2025-2-24 00:12

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表