C# Winform 想做一个CSV传入数据库的进度条,怎么做?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C# Winform 想做一个CSV传入数据库的进度条,怎么做?相关的知识,希望对你有一定的参考价值。

现在CSV导入数据库的工作已经完成,现在想新添加一个进度条的提示,采用多线程,求大神指教。

参考技术A 两个线程,一个线程读取数据,一个线程设置进度条进度。后者靠前者给的数据来知道当前到什么进度了,当然,两个线程之间肯定就要有通信,比如发送自定义消息。我说的这个办法适用于windows下所有的开发语言,无论c#还是vc++ 参考技术B 假设你的进度条控件叫做progressBar1; 以下为点击导入的代码 :
private void button1_Click(object sender, EventArgs e)

Thread th = new Thread(new ThreadStart(delegate

while(true)

//导入数据的代码,导入一条,执行一下下面的语句
this.Invoke(new Action(delegate
this.progressBar1.Value++;
));
if(导入完成)

return;


));
th.Start();
本回答被提问者和网友采纳

C# winForm Socket 多线程 编程 关闭问题

关闭窗体时为什么在进程中还有exe程序,还有的就是如果想做个重置,应该如何做,关闭Socket和线程的顺序

2中方式,除主线程外其他线程设置为后台线程,即background thread,这是线程创建时的一个属性,另一种就是应用程序退出时的事件里手动退出线程
----
void Application_Exit(object sender,args e)

//thread.abort();



好像是这样写吧,好久没用C#了,有点忘了,MSDN上有详细的说明

socket是非托管资源,我的理解是最好首先清理(在其他线程前);
参考技术A 关闭窗口 ,你应该用appliction.exit(),另外建议先关闭 通讯在关闭线程。先关闭线程 会导致,你得程序死掉的。 参考技术B 设置线程为后台线程(IsBackground),否则子线程未结束,主线程结束后不会结束子线程。如System.Threading.Thread thread = new System.Threading.Thread();
thread.IsBackground = true;
参考技术C 多线程程序,如果是直接关闭窗口的话,只会关闭主线程,关闭的时候要用application.exit(),才会关闭其它的线程 参考技术D application.exit()是结束程序this.close()是关闭当前窗体

以上是关于C# Winform 想做一个CSV传入数据库的进度条,怎么做?的主要内容,如果未能解决你的问题,请参考以下文章

C# winform 想做个如图所示的表格,用啥控件来做?或者是第三方啥控件?

如何在C# Winform中嵌套一个播放器,就好像PPS那种我想做一个播放视频的软件,请高手指点啊

C#调用WPF或Winform以及控制台程序时传入参数

c# winForm使用Aspose.Cells读取CSV文件中文乱码问题

c# winform如何用一个图片来代替一个窗体的关闭按钮?

C#winform中如何限制txtbox输入只能是数字和特定字母X,我想做一个身份证号码得输入框!