比如你是从网络上获取,你还要有一个用来自动更新的程序,从网上下载到更新包以后,关闭当前运行的程序,打开自动更新的程序覆盖掉原程序就好了。。如果你的版本号存在注册表中,还要改下注册表。。。
如果是自动刷新窗体中数据表,那太简单了.更新数据的函数后,加一个让引用 dataGridViewRefesh()这样dataGridView重新加载并刷新数据了.void dataGridViewRefesh()
{
dataGridView1.DataSource = null
SqlConnection con = new SqlConnection(@"server=(local)Integrated security=SSPIdatabase=你的数据库名")
SqlDataAdapter Ader=new SqlDataAdapter("select * from [你的表名]",con)
DataSet Dset
Ader.Fill(Dset,"Table1")
dataGridView1.DataSource=Dset.Table["Table1"].DefaultView
dataGridView1.Refresh()
Dset.Dispose()
Ader.Dispose()
con.Close()
}
1.进程是指在系统中正在运行的一个应用程序;线程是系统分配处理器时间资源的基本单元,或者说进程之内独立执行的一个单元。
2.相对进程而言,线程是一个更加接近于执行体的概念,它可以与进程中的其它线程共享数据,但拥有自己的栈空间,拥有独立的执行序列。
3.多线程适应于并发环境的需求。
4.还要理解并行,
5.对象锁,即synchronized ,用这个修饰run方法,当一个线程进入运行run方法,这个方法就上锁了,别的线程就用不了,等到这个线程用完,锁就打开了别的线程重复此机制
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)