【发布时间】:2019-12-06 23:05:15
【问题描述】:
我正在寻找一种可以将多个方法调用添加到线程的解决方案。 一个普通的线程调用只能从一个方法调用开始,我想添加多个独立的方法调用。从一个线程调用可能有数千个方法,因此不可能为每个方法调用创建一个线程。例如,我想到了 10 个正在获取方法调用的线程。还是线程池是更好的方法?
这样的东西会很好:
Thread t1 = new Thread();
Thread t2 = new Thread();
t1.Add(DoWork(1));
t1.Add(DoWork(2));
t2.Add(DoWork(3));
t2.Add(DoWork(4));
t1.Start(); t2.Start();
【问题讨论】:
-
也许,一个调用多个方法的新线程。
-
如果方法调用是“独立的”,为什么它们需要由同一个线程执行?如果您只是想减少应用程序使用的线程数,请考虑改用线程池,并让方法调用分布在其中。
-
我通常的建议是远离像线程和线程池这样的低级类,除非你有严重的理由。您应该看看更高级别的类,例如 Task、Parallel、PLINQ 或 BackgroundWorker。
标签: c# multithreading asynchronous