摘要:
我们在用线程操作的时候,可能会出现异常:线程间操作无效: 从不是创建控件richTextBox1的线程访问它。因为windows窗体控件不是线程安全的,如果几个线程操作某一控件的状态,可能会使该控件的状态不一致,出现争用或死锁状态。这种情况有以下解决办法: 利用委托机制实现线程安全。这种方法就是微软建议采用的跨线程调用的一种通用方法,就是使用代理来实现,就是将你所要操作的代码放到一个代理中,然后将这个代理交给创建这个控件的线程来执行你的代码。privatedelegatevoidrichTextBoxCallBack();public void SetText(){ richTextBox.. 阅读全文
posted @ 2012-08-21 12:25
Rain&Sun
阅读(2217)
评论(0)
推荐(0)
摘要:
以下代码用于在C#程序中启动其他外部的程序,就不详细解释了。只需要注意这句System.Threading.Thread.Sleep(500); 我当时加入这句是让主程序休眠500毫秒。这里没有线程,就是主程序休眠。目的是为了后面对此外部程序的使用晚一些,给这个程序启动留下一定的启动时间,不然的话,外部程序可能还没有启动完成,结果你的C#程序就继续往下走,去调用这个外部程序的一些功能了,就会导致调用没有反应,甚至程序死掉。//设置启动程序的信息System.Diagnostics.ProcessStartInfo Info = new System.Diagnostics.ProcessSta 阅读全文
posted @ 2012-08-21 12:19
Rain&Sun
阅读(1682)
评论(0)
推荐(0)
浙公网安备 33010602011771号