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

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

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


请问这是什么原因呢
...全文
343 10 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
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流同时写吗?
  • 打赏
  • 举报
回复
当前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
  • 打赏
  • 举报
回复
高手进来看看啊

111,098

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • AIGC Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧