不好意思我是新人分数全部花去下载了请见谅!
我想问下 我把有一个文件夹里面是excel文件 (这个是要导入到access的)
我用backgroundworker做后台线程(插入access数据库)
现在我想把文件夹拖放到winform上就能全部插入access数据库
现在问题就是不会循环执行backgroundworker 因为需要backgroundworker 执行成功后再接着执行下一个excel文件。
请教大侠怎么做!
我想问下 我把有一个文件夹里面是excel文件 (这个是要导入到access的)
我用backgroundworker做后台线程(插入access数据库)
现在我想把文件夹拖放到winform上就能全部插入access数据库
现在问题就是不会循环执行backgroundworker 因为需要backgroundworker 执行成功后再接着执行下一个excel文件。
请教大侠怎么做!
foreach(遍历Excel文件)
{
BackGroundworker worker=new BackGroundworker(); worker.DoWork+=new DoWorkEventHandler((sender,e)=>
{
//ToDo
}); worker.ProgressChanged+= new ProgressChangedEventHandler((sender,e)=>
{
//ToDo
}); worker.RunWorkerCompleted+=new ProgressChangedEventHandler((sender,e)=>
{
//ToDo
});
}4.多线程同时操作,这个进度控制就是个问题,我们可以用一种数据结构来保存每个线程的全部或局部数据,每个workerCompleted将其压栈处理List<BackGroundworker> list=new List<BackGroundworker>();foreach(遍历Excel文件)
{
BackGroundworker worker=new BackGroundworker(); worker.DoWork+=new DoWorkEventHandler((sender,e)=>
{
//ToDo
}); worker.ProgressChanged+= new ProgressChangedEventHandler((sender,e)=>
{
//ToDo
//list.count和遍历Excel文件的count来得出当前进度
}); worker.RunWorkerCompleted+=new ProgressChangedEventHandler((sender,e)=>
{
//ToDo
//压栈
});
}5.类推,可以使用琢磨下步骤2,进行封装
worker.RunWorkerCompleted+=new ProgressChangedEventHandler((sender,e)=>
{
//ToDo
});
错误 1 无法将类型“System.ComponentModel.ProgressChangedEventHandler”隐式转换为“System.ComponentModel.RunWorkerCompletedEventHandler”我改成
worker.RunWorkerCompleted+=new RunWorkerCompletedEventHandler((sender,e)=>
{
//ToDo
});
错误 1 “System.ComponentModel.RunWorkerCompletedEventArgs”不包含采用“1”个参数的构造函数 我很笨不知道怎么修改。请提点一二!
RunWorkerCompleted这个事件注册时委托写错了,你看下吧对应得委托是哪个,后面的是匿名函数,语法不懂的话,去MSDN查阅一下啊