一个离开.NET的程序员

ryhan

  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

2011年7月20日

摘要: 如果你仔细阅读了我前面的三篇文章,我相信你对用.NET Framework提供的System.Threading.Thread类和一些线程同步的类基本的线程知识和多线程编程知识很了解。我们将在这里进一步讨论一些.NET类,以及他们在多线程编程中扮演的角色和怎么编程。它们是: System.Threading.ThreadPool 类 System.Threading.Timer 类 如果线程的数目并不是很多,而且你想控制每个线程的细节诸如线程的优先级等,使用Thread是比较合适的;但是如果有大量的线程,考虑使用线程池应该更好一些,它提供了高效的线程管理机制来处理多任务。 对于定期的执行任务T 阅读全文
posted @ 2011-07-20 15:56 ryhan 阅读(301) 评论(0) 推荐(1) 编辑

摘要: 在多线程的程序中,经常会出现两种情况:一种情况: 应用程序中,线程把大部分的时间花费在等待状态,等待某个事件发生,然后才能给予响应这一般使用ThreadPool(线程池)来解决;另一种情况:线程平时都处于休眠状态,只是周期性地被唤醒这一般使用Timer(定时器)来解决;ThreadPool类提供一个由系统维护的线程池(可以看作一个线程的容器),该容器需要 Windows 2000 以上系统支持,因为其中某些方法调用了只有高版本的Windows才有的API函数。将线程安放在线程池里,需使用ThreadPool.QueueUserWorkItem()方法,该方法的原型如下://将一个线程放进线程池 阅读全文
posted @ 2011-07-20 15:55 ryhan 阅读(346) 评论(0) 推荐(0) 编辑

摘要: 在多线程的程序中,经常会出现两种情况。一种情况下,应用程序中的线程把大部分的时间花费在等待状态,等待某个事件发生,然后才能给予响应;而另外一种情况则是线程平常都处于休眠状态,只是周期性地被唤醒。这里分析及介绍.Net Framework中ThreadPool class来对付第一种情况,相应地也会谈到QueueUserWorkItem方法和WaitCallback委托。而使用Timer(System.Threading.Timer or System.Windows.Forms.Timer)来对付第二种情况,可以参考《System.Threading.Timer类的TimerCallback 阅读全文
posted @ 2011-07-20 13:33 ryhan 阅读(465) 评论(0) 推荐(0) 编辑

摘要: c# 允许服务与桌面交互(已补充)http://www.cnblogs.com/chenzhigao/archive/2010/02/06/1665173.html我们写一个服务,有时候要让服务启动某个应用程序,就要修改服务的属性,勾选允许服务与桌面交互,可以用修改注册表实现,我们必须在安装后操作,所以请重写Installer的OnAfterInstall。Code highlighting produced by Actipro CodeHighlighter (freeware)http://www.CodeHighlighter.com/-->protected override 阅读全文
posted @ 2011-07-20 12:46 ryhan 阅读(1473) 评论(0) 推荐(1) 编辑

摘要: 屏幕监控是远控软件的基本功能之一。现在很多远控程序的服务端通常为DLL形式,通过远程线程注入等方法插入到services、svchost等SYSTEM权限的进程中去,而此时常规的屏幕监控就会失效(这是因为与SYSTEM权限进程关联的窗口站、桌面与普通进程不同)。如何才能在SYSTEM权限下实现屏幕监控呢?一、 屏幕监控的基本原理屏幕监控简单说就是对进程的当前桌面进行截屏存成位图,然后将此位图数据传输到远程。对桌面进行截图需要通过一系列Windows GDI API来完成的。首先通过CreateDC,CreateCompatibleDC,CreateCompatibleBitmap,Select 阅读全文
posted @ 2011-07-20 12:42 ryhan 阅读(1057) 评论(0) 推荐(0) 编辑