一、异步多线程
我们写代码过程中经常会涉及到一些复杂的业务逻辑,系统处理时间有需要很长的时间,如果是同步的话,就会给用户带来极差的用户体验;那么我们就会用到一个异步处理,让复杂逻辑通过另一个线程去完成,及时响应用户的需求。
多线程程序调用方法
Thread thread = new Thread(ThreadMethod); //执行的必须是无返回值的方法
thread.Start();
子线程执行函数:
public static void ThreadMethod(object parameter) //方法内可以有参数,也可以没有参数
{
// 子线程执行业务逻辑
}
需要注意的是,如果我们用到的子线程需要传递参数,那么就需要在start中调用的时候把对象传递过去即可;
如果业务涉及到我们一个程序隔多长时间执行一次的话,这个地方就可以使用
Thread.sleep(间隔时间);
但是每使用一个线程就要创建一个,需要占用系统开销;为此咱还用到一个概念:线程池
ThreadPool.QueueUserWorkItem(new WaitCallback(ThreadMethod), new object());
子线程的执行函数同上
二、Form程序加载背景程序缓慢问题
解决办法
1、将背景图加载进来后释放
Bitmap bm = new Bitmap("back_ground.png");
Bitmap newBm = new Bitmap(bm);
bm.Dispose();
this.BackgroundImage=newBm;
2、开启窗体缓冲功能 DoubleBuffered 设置为true;
thisform.DoubleBuffered =true; //示范代码