C# Excel COM插件开发 多线程问题(急急急,求高手指点)

lightrat2009 2013-11-03 10:54:40
小弟最近在做一个excel 插件,Excel 主要功能是显示处理分析好的数据,
由于分析时间很长,所以要做个把分析过程放在另一个线程中执行,主线程弹出对话框控制分析的运行状态。主要是开始,暂停,继续,停止等操作后台的任务。

现在遇到的问题是,在这个后台进程中操作向excel单元格中写入数据,后就会经常报出异常,不对excel单元格操作就不会报异常,而且在关闭excel后,excel的界面消失了,但是任务管理器中的excel.exe进程还存在


请问这是什么原因呢
...全文
151 点赞 收藏 10
写回复
10 条回复
lightrat2009 2013年11月07日
总之,现在我不打算在线程中操作excel了,只能把需要处理的数据缓存起来,在线程中处理数据,然后回到主线程操作excel了。
回复 点赞
lightrat2009 2013年11月07日
引用 6 楼 shiyong7682719 的回复:
当前excel已经被占用了,你又开个线程处理这个excel 肯定会有问题那
当前excel是被暂用,但是我在另一个线程中却还可以操作excel,并且只要线程不被莫名其妙的kill,另一线程依然可以操作excel
回复 点赞
GISDev125 2013年11月05日
多线程环境下调用COM,貌似很难控制吧。建议不要使用COM方式访问Excel。自Office2007开始,微软使用了ZIP和XML技术处理Office文件,微软有提供SDK——>Open XML SDK,网上也有蛮多基于Open XML SDK的封装,推荐一个CloseXML,蛮方便的,与基于COM的编程模式很相似。
回复 点赞
老秋先生 2013年11月05日
1. excel.exe还存在进程这是正常的,操作完Excel之后都会留下,总之我经常碰到,需要KILL掉。 2.   2.1 有没可能excel正处理只读模式   2.2 没你的代码我可能想不到为什么,但多线程情况下能幻想到的应该就是IO流同时写吗?
回复 点赞
老骥伏枥志在千里o 2013年11月05日
当前excel已经被占用了,你又开个线程处理这个excel 肯定会有问题那
回复 点赞
lightrat2009 2013年11月05日
问题还没有解决,求高手指点
回复 点赞
mnxm 2013年11月04日
建议把帖子移动到c#板块
回复 点赞
lightrat2009 2013年11月04日
自己顶ddd
回复 点赞
lightrat2009 2013年11月04日
现在的问题是 当我在线程中给 excel的单元格赋值便会造成excel 退出不掉,然后再次调用线程向单元格中赋值Excel就会报异常,在线程中只做数据操作excel主线程就能正常退出
回复 点赞
lightrat2009 2013年11月03日
高手进来看看啊
回复 点赞
发动态
发帖子
C#
创建于2007-09-28

8.5w+

社区成员

64.0w+

社区内容

.NET技术 C#
社区公告
暂无公告