2019年9月17日
摘要: 请注意红色字体, 采用信号量 ManualResetEvent来控制暂停/继续 ManualResetEvent 允许线程通过发信号互相通信。通常,此通信涉及一个线程在其他线程进行之前必须完成的任务。当一个线程开始一个活动(此活动必须完成后,其他线程才能开始)时,它调用 Reset 以将 Manua 阅读全文
posted @ 2019-09-17 14:30 Gu 阅读(820) 评论(0) 推荐(0) 编辑
摘要: BackgroundWorker是在内部使用了线程池的技术;同时,在Winform 或WPF编码中,它还给工作线程和UI线程提供了交互的能力。 Thread和ThreadPool默认都没有提供这种交互能 力,而BackgroundWorker却通过事件提供了这种能力。这种能力包括:报告进度、支持完成 阅读全文
posted @ 2019-09-17 11:17 Gu 阅读(1923) 评论(0) 推荐(0) 编辑
摘要: 入门示例: 假如有一个label,我们希望像走马灯一样,从1显示到100 但这种写法,只会卡一下,然后label显示100,没有变化的. 如果用doEvents,就可以变化了 但是stackoverflow里说Application.DoEvents是为了适应vb项目迁移而设的,尽量不推荐使用 改成 阅读全文
posted @ 2019-09-17 09:33 Gu 阅读(488) 评论(0) 推荐(0) 编辑
摘要: 现在手上有一些历史的VB项目,是工控方面PLC控制的. 代码用了很多DoEvent 和时间等待. DoEvent的最大问题的不知道流程跳到哪里去了. 所以,不得以要用C#重新改造,重新捡起多线程.之前写WinForm比较少,重新学习一遍多线程. 1. IO密集型的,尽量不要用多线程,而是用异步方法. 阅读全文
posted @ 2019-09-17 09:14 Gu 阅读(301) 评论(0) 推荐(0) 编辑