可以使用多线程 加载,就不会影响窗体中 gif 的播放
背景:
一个内容为gif 的图片框
两个按钮
一个文本域
private string str = ""; //全局变量
private void Init() //加载方法
{
//耗内存操作
Random r = new Random();
for (int i = 0; i < 99999; i++)
{
str = i + " - " + (i * r.Next(50000)).ToString().Substring(0, 1) + str;
}
}
private void button1_Click(object sender, EventArgs e)
{
//建立线程,并传入线程执行的方法
Thread thread = new Thread(new ThreadStart(Init));
thread.Start(); //启动线程
//Init();
}
private void button2_Click(object sender, EventArgs e)
{
textBox1.Text = str; //读取当前变量
}
点击按钮1,开始后台加载数据,
随时点击按钮2,可以看到全局变量的值,在变化
窗体的gif并没有停止
将按钮1的线程注释掉,直接调用 Init()
窗体的gif停掉,按钮均未响应