性能优化- 多线程异步IO操作

程序启动太慢,有很多原因,例如:一次性启动太多窗口;IO操作等待,一次性加载所有Excel文件;数据库访问延迟;不合理的代码逻辑,创建太多对象;内存不足使用;等等。

打开一个程序,如果资源放在窗口的main线程中加载,那会多增加一些时间,对于一些数据资源比较庞大的程序来说,可能需要几分钟。也就是说,你得要等几分钟,才能使用这个软件,等到花儿都谢了。。。

解决办法:使用多线程,异步处理io操作,将资源加载放在子线程里执行。

程序启动的时候,子线程就开始加载资源,等加载完了设置一个成功标志,以后如果要加载,就先判断缓存。在这种模式下,用户就可以进行他们自己的操作,而不用等待了。

把这个思路在目前的项目中应用了一下,打开时间从2分钟减低到了25秒。(感谢万老师的指点。)

 

c#多线程结构:

public static void CallToChildThread()
{
    Console.WriteLine("Child thread starts");
    //load task ..
    xxfunc();
}

static void asyncLoad()
{
    ThreadStart childref = new ThreadStart(CallToChildThread);
    Thread childThread = new Thread(childref);
    childThread.
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值