摘要: Invoke和BeginInvoke都是操作其他线程的方法,区别在于一个是同步的一个异步的,简单来说就是一个是立即执行,另一个是 等要操作线程结束后再执行。推荐一BLOG 博主写的不错http://www.cnblogs.com/mashang/archive/2009/08/01/1536730.html 阅读全文
posted @ 2013-01-21 13:05 Devil_jim 阅读(226) 评论(0) 推荐(0) 编辑
摘要: 首先无论是那个BeginInvoke()都是异步执行子线程函数,有些同学疑问了,异步执行是不是在子线程的函数没有执行完, 下一次执行又开辟了新的线程进行执行呢(微软官方给出的BeginInvoke并不是多线程执行的异步)我的测试却让我对此感觉迷惑--下面的代码我会讲到测试代码 (不同A)----线程的宿主不同--此处和this.Invoke()与Delegate.Invoke一样(可参考MSDN http://msdn.microsoft.com/zh-cn/library/vstudio/0b1bf3y3.aspx) (不同B)----参数不同 方法重构... 阅读全文
posted @ 2013-01-21 13:02 Devil_jim 阅读(10183) 评论(5) 推荐(0) 编辑
摘要: <不同A>--所在的宿主线程体不同this.Invoke()是在当前UI(或对象)线程的基础上的执行的委托Delegate.Invoke()是在UI线程之外的新线程基础上执行的委托(例如下边代码的myThread)<不同B>--参数不同this.Invoke(Delegate)--需要传递一个委托的对象实例Delegate.Invoke();--不需要任何参数,执行的是当前委托绑定的方法我们看下边代码private Delegate_LED dgate = null;//委托private Thread myThread;//线程//////构造函数 ///privat 阅读全文
posted @ 2013-01-21 12:45 Devil_jim 阅读(6631) 评论(2) 推荐(0) 编辑