日期:2014-05-20  浏览次数:20837 次

委托与线程的区别~~~~~~~~~~最好能有例子来说明
如题

------解决方案--------------------
感觉,委托实际上也是建立了一个新的线程再运行.和异步差不多.
------解决方案--------------------
委托实际上也是建立了一个新的线程再运行.和异步差不多

我同意這種說法。
------解决方案--------------------

Delegate Sub SetTextCallback(ByVal [text] As String) '这里是委托
Private demoThread As Thread = Nothing '这是线程

Me.demoThread = New Thread(New ThreadStart(AddressOf Me.ThreadProcSafe))
Me.demoThread.Start()

Private Sub SetText(ByVal [text] As String) '这是线程调用委托出来的的方法
If Me.textBox1.InvokeRequired Then
Dim d As New SetTextCallback(AddressOf SetText)
Me.Invoke(d, New Object() {[text]})
Else
Me.textBox1.Text = [text]
End If
End Sub
------解决方案--------------------
sorry, "委托与线程没有关系 "这个说得不准确
应该是委托与线程没有相似之处
关系还是有的,线程执行的方法要用委托传递
------解决方案--------------------
Private Sub ThreadProcSafe()
Me.SetText( "This text was set safely. ")
End Sub
------解决方案--------------------
线程执行的方法要用委托传递,但是我不同意他们之间就有关系阿~~

这算“依赖”关系?还是“调用”关系?各司其职阿~~

------解决方案--------------------
实际上是本线程wait,委托线程do完本线程再继续~~~
可以理解成单线程~~~
------解决方案--------------------
委托是方法的包装吧,类似于C++的函数指针,不同之处在于它是类型安全的
委托与线程是有关系的,但是是完全不同的概念!放在一起比较没有任何意义!
------解决方案--------------------
线程执行的方法要用委托传递——这也是异步(Vs2003)或者是对控件操作(Vs2005)之后才产生的吧。
------解决方案--------------------
委托是方法的包装吧,类似于C++的函数指针,不同之处在于它是类型安全的
——这个说的没错

但是程序里面那一种“东西”之间没有联系?这不能算是有关系呀~~呵呵

都有二大妈的不一定是亲戚阿——有点较真了~~~~~~~~~明白是什么意思就是了。