找回密码
 立即注册

QQ登录

只需一步,快速开始

KNight

中级会员

18

主题

217

帖子

713

积分

中级会员

积分
713

活字格认证微信认证勋章元老葡萄

QQ
KNight
中级会员   /  发表于:2014-12-8 12:20  /   查看:14656  /  回复:18
Silverlight中在子线程中使用C1XLBook读取Excel数据,会出现跨线程访问的问题,但是如果在UI主线程中使用C1XLBook随意Load一个Excel文件后,再在子线程中操作C1XLBook读取Excel就不会出现跨线程访问的问题了?求解答疑惑?为啥?怎么样才能直接在子线程中使用C1XLBook去Load一个excel而不出现跨线程访问的问题?

18 个回复

倒序浏览
Alice
社区贡献组   /  发表于:2014-12-8 15:35:00
沙发
回复 1楼KNight的帖子

请问你使用的是什么样的多线程,Dispatcher.BeginInvoke么?
首先我们要重现这个问题,才能解决。
最好能制作一个简单的Demo,我们可以帮你看看问题出在哪里?
请点击评分,对我的服务做出评价!  5分为非常满意!

葡萄城控件服务团队

官方网站: http://www.gcpowertools.com.cn
回复 使用道具 举报
KNight
中级会员   /  发表于:2014-12-10 10:10:00
板凳
回复 2楼Alice的帖子


重现Demo已上传,麻烦您了。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
回复 使用道具 举报
Alice
社区贡献组   /  发表于:2014-12-10 22:10:00
地板
回复 3楼KNight的帖子

不好意思。Demo的验证需要时间,明天验证完给您个回复。
请点击评分,对我的服务做出评价!  5分为非常满意!

葡萄城控件服务团队

官方网站: http://www.gcpowertools.com.cn
回复 使用道具 举报
KNight
中级会员   /  发表于:2014-12-12 08:28:00
5#
回复 4楼Alice的帖子

:|您不会忘记这个帖子了吧。。呜呜~~
回复 使用道具 举报
gw0506
超级版主   /  发表于:2014-12-12 10:51:00
6#
必须不能忘啊~
不过还需要在等等才能回复你。我们请研发在调查此事。
回复 使用道具 举报
gw0506
超级版主   /  发表于:2014-12-12 11:17:00
7#
您好,目前尝试多台机器后,均无法重现你说的问题。您给的Demo正常执行,没有出现跨线程访问的问题。

请问你是使用管理员帐户登录的吗?运行VS是不是使用管理员帐户。可能跟权限有关。
回复 使用道具 举报
gw0506
超级版主   /  发表于:2014-12-12 12:15:00
8#
Win 8 系统可以重现。原因是load excel文件的时候,需要填充样式,然后会取系统的Color,由此造成跨线程访问。而你的环境下,系统不允许你跨线程访问。

一个解决办法是在你的helper中使用delegate,不过这样写其实等于是在主线程load的。所以解决办法可能还是要在主线程加载。
回复 使用道具 举报
KNight
中级会员   /  发表于:2014-12-12 14:32:00
9#
回复 8楼gw0506的帖子

您好,我的是Win7 64位机器,运行VS都是通过“以管理员身份运行”打开执行的,仍然是跨线程访问的错误。应该不是权限的问题。

我在本机上的测试结果是,有些Excel可以加载,有些Excel加载会出现跨线程访问的错误,甚至,我把能加载的Excel另存为一个副本文件,再加载竟然出现跨线程访问的错误,抓狂了。。。我上传一个我这边可以加载的,但另存为后就不能加载的Excel,您帮忙给看一下可能出现的原因。


本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
回复 使用道具 举报
KNight
中级会员   /  发表于:2014-12-12 14:38:00
10#
回复 8楼gw0506的帖子

话说Alice今天休假了?:?
回复 使用道具 举报
12下一页
您需要登录后才可以回帖 登录 | 立即注册
返回顶部