仓酷云

标题: ASP.NET编程:使用Visual C#完成Windows管道手艺 [打印本页]

作者: 莫相离    时间: 2015-1-16 22:32
标题: ASP.NET编程:使用Visual C#完成Windows管道手艺
无论谁倒了对双方阵营的粉丝们也是有害无益。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();

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




欢迎光临 仓酷云 (http://ckuyun.com/) Powered by Discuz! X3.2