首页 新闻 会员 周边

请教:委托ThreadStart(委托.Invoke)的用法

0
悬赏园豆:5 [已解决问题] 解决于 2021-11-27 06:08

1· //创建委托
2· public delegate void ThreadProcedure();
3· //方法体
4· public static void AddThread ( string threadName, ThreadProcedure target)
5· {
................
6· Thread thread = new Thread(new ThreadStart(target.Invoke));//问题行
7· thread.Start();

9· }

   //方法体调用 main中调用如下
      AddThread ("线程1", CollectingFunc);
 
  CollectingFunc()
  {
      ........
   }

如上是整个的描述,我想问下,第7行中,ThreadStart已经是委托了,之前接触的是ThreadStart()括号中加入方法体,或是new ThreadStart(delegate()});
而上面在ThreadStart()括号中使用了delegate.invoke(target.invoke),按照调用的方法,target.invoke写入实际的方法体,而我对于delegate.invoke的理解是,跨线程时使用,因此如上7行中 ThreadStart(delegate.Invoke)的用法实在是比较困惑,
请大神们指出知识点,费心多讲几句,不胜感激!

rossi努力努力的主页 rossi努力努力 | 初学一级 | 园豆:8
提问于:2021-06-26 11:40
< >
分享
最佳答案
0

你这是哪里的代码?

delegate在同一个线程中也可以使用,它只是代表一个method的类型安全的引用罢了。

我没太理解ThreadStart(delegate.Invoke)这种写法的为什么,我感觉唯一说得过去的理由是不想外部依赖ThreadStart,而是依赖你们自定义的ThreadProcedure。除此之外没其他任何含义。

收获园豆:5
Timetombs | 老鸟四级 |园豆:3954 | 2021-06-26 14:50
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册