共 33 篇文章 |
|
CloseMainWindow方法使用PostMessage(不是SendMessage,所以消息会加在消息队列的最后)方法向主窗体发送一个WM_CLOSE消息,这样等主窗体处理完所有消息后,等遇到WM_CLOSE便开始执行退出动作。其中WM_CLOSE相当于用户点击关闭按钮,使用PostMessage将WM_CLOSE发送至主窗体等价于.NET中Process类的CloseMainWindow方法,当接收到WM_CLOSE消息... 阅280 转0 评0 公众公开 15-09-09 14:52 |
public class LogWriter { private LogWriter() { logtimer.wb.Append(LogList[0]["logtype"].wb = wb.private List<Hashtable> LogList = new List<Hashtable>();public static LogWriter GetInstance() { if (mInstance==null) { mInstance ... 阅791 转2 评0 公众公开 15-06-17 16:50 |
C#多线程写日志。/// <param name="byteCount">每次开辟位数大小,这个直接影响到记录文件的效率</param>/// <param name="fileName">文件全路径名</param>_fileName = fileName;/// <param name="fileName"></param>public void Create(string fileName)IO.FileStream fs ... 阅181 转0 评0 公众公开 15-06-17 16:49 |
带参数的启动方法 如果要在实例化线程时要带一些参数,就不能用ThreadStart委托作为构造函数的参数来实例化Thread了,而要ParameterizedThreadStart委托,和ThreadStart一样的是它也是线程启动时要执行的方法,和ThreadStart不同的是,它在实例化时可以用一个带有一个Object参数的方法作为构造函数的参数,而实例化ThreadStart时所用到的方法是... 阅66 转0 评0 公众公开 15-06-17 14:48 |
3 前台线程与后台线程的简单介绍。如上代码,我们制造两个线程来实现Suspend和Resume的测试,(暂时不考虑临界区共享同步的问题),TestSuspend方法便是两个线程的共用方法,方法中我们获取当前运行该方法的线程,然后将其挂起操作,那么假设线程1先挂起了,线程1被中止当前的工作,面壁思过去了,可是这并不影响线程2的工作,于是线程2也急匆匆... 阅126 转3 评0 公众公开 12-08-21 22:51 |
线程可以通过它的Name属性进行命名,这非产有利于调试:可以用Console.WriteLine打印出线程的名字,Microsoft Visual Studio可以将线程的名字显示在调试工具栏的位置上。线程默认为前台线程,这意味着任何前台线程在运行都会保持程序存活。如果程序被调用的时候没有任何参数,工作线程为前台线程,并且将等待ReadLine语句来等待用户的触发回车... 阅547 转4 评0 公众公开 12-06-18 13:34 |
C#中提供了三种类型的计时器:1、基于 Windows 的标准计时器(System.Windows.Forms.Timer)2、基于服务器的计时器(System.Timers.Timer)3、线程计时器(System.Threading.Timer)下面我就通过一些小实验来具体分析三种计时器使用上面的异同点,特别是和线程有关的部分。三、线程计时器(System.Threading.Timer) 线程计时器也不依赖窗体,是一种简... 阅188 转2 评0 公众公开 12-04-10 17:35 |
二、随着拥有多个硬线程CPU(超线程、双核)的普及,多线程和异步操作等并发程序设计方法也受到了更多的关注和讨论。异步委托将要执行的方法提交到.net的线程池,由线程池中的线程来执行异步方法。当异步操作执行完成后,系统会从可用线程中选取一个执行回调程序,这时的这个线程可能是刚开始发出请求的那个线程,也可能是其他的线程,因为系统... 阅1009 转4 评0 公众公开 12-04-02 14:28 |
如果从线程外操作windows窗体控件,那么就需要使用Invoke或者BeginInvoke方法,通过一个委托把调用封送到控件所属的线程上执行。二、消息机制---线程间和进程间通信机制。Windows消息机制是windows平台上的线程或者进程间通信机制之一。因此,一个线程可以向另一个线程的消息队列发送消息从而告诉对方做什么,这样就完成了线程间的通信。因为主... 阅38 转0 评0 公众公开 12-03-29 15:08 |
如果是应用程序域自身(包括应用程序域创建的子线程)发出卸载命令,那么会由CLR来创建一个新的线程执行卸载应用程序域,产生的异常由CLR发出的线程捕捉;托管世界的执行对象提供元数据和IL代码以及安全证据等在CLR的内存对执行,所有的托管代码经过Jit编译成本地代码,由于CLR的一切对象被“托管”可以确保AppDomain的实现类似进程环境的执行... 阅629 转3 评0 公众公开 12-02-27 13:05 |