首页 新闻 会员 周边 捐助

C# 如何让代码的运行速度提高呢

0
[已解决问题] 解决于 2022-09-22 16:44

用多线程的方式提高代码的运行速率怎么实现

。LANGYUAN。的主页 。LANGYUAN。 | 初学一级 | 园豆:136
提问于:2022-09-20 13:04
< >
分享
最佳答案
0

多线程并不是一定能提高代码的运行速率
一般是在执行多个任务的时候,为了防止某个比较慢的任务阻塞,才会采用多线程充分利用cpu
使用多线程很简单,Task.Run就能启动一个异步线程

        static void Test() { 
            Task.Run(() => {
                while (true) {
                    Thread.Sleep(1000);
                    Console.WriteLine("异步任务1");
                }
            });
            Task.Run(() => {
                Thread.Sleep(1000);
                Console.WriteLine("异步任务2");
            });
            while (true) {
                Thread.Sleep(1000);
                Console.WriteLine("主线程任务");
            }
        }
奖励园豆:5
WmW | 菜鸟二级 |园豆:424 | 2022-09-20 18:30

谢谢大佬

。LANGYUAN。 | 园豆:136 (初学一级) | 2022-09-20 18:33
其他回答(1)
0

想让代码效率提高不止多线程一种手段。
建议先做个benchmark测试,看看哪一块是耗时最多的(有个不知道谁说的定律:程序80%的运行时间是消耗在20%的代码上)。
首先应该考虑能否在现有代码本身做优化,比如是否有的地方发生了没有必要的复制,有的地方可以采取更优的算法等等。
然后可以考虑异步,尤其是在IO操作的时候,异步是非常好的选择。
最后再看多线程,可以考虑Parallel.ForParallel.ForEach,也可以像楼上那样开几个task跑。

AsakusaRinne | 园豆:214 (菜鸟二级) | 2022-09-21 00:10

谢谢大佬,我可以试试嘛

支持(0) 反对(0) 。LANGYUAN。 | 园豆:136 (初学一级) | 2022-09-21 09:06
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册