找回密码
 立即注册

QQ登录

只需一步,快速开始

SamGuo

注册会员

4

主题

11

帖子

35

积分

注册会员

积分
35
SamGuo
注册会员   /  发表于:2018-10-9 15:50  /   查看:3148  /  回复:5
老师好:我在使用多线程的时候遇到如下问题:
如果在主线程中创建multiCell变量,在子线程中multiCell.Image = image,程序运行到此句就莫名地崩溃。
我想原因应该是控件的线程不一致所致,涉及到控件的多线程就很麻烦。
我想请教在使用子线程生成image后(因为生成image的计算耗时,所以写到子线程中),如何将image显示到界面中去?
十分期待老师的解答了,谢谢啦。

5 个回复

倒序浏览
Richard.Ma讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2018-10-9 22:58:42
沙发
方便的话还是麻烦上传下代码
我判断确实英语是线程不同步导致的,可能存在多个线程同时操作multiCell
回复 使用道具 举报
SamGuo
注册会员   /  发表于:2018-10-10 09:28:02
板凳
Richard.Ma 发表于 2018-10-9 22:58
方便的话还是麻烦上传下代码
我判断确实英语是线程不同步导致的,可能存在多个线程同时操作multiCell

老师,代码我上传到百度网盘了,代码和数据大概190M,链接是:https://pan.baidu.com/s/1myhuvRDMucw0cULoeTbMpA请老师帮我看看,困扰我好久了。
回复 使用道具 举报
Richard.Ma讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2018-10-10 09:43:33
地板
好的,我帮您看一下具体是什么问题
回复 使用道具 举报
SamGuo
注册会员   /  发表于:2018-10-11 11:03:38
5#
Richard.Ma 发表于 2018-10-10 09:43
好的,我帮您看一下具体是什么问题

太谢谢老师了,老师把代码亲自给我改正确了,并指出:
错误提示是Unsafe access,估计是和C#控件本身无法跨线程调用是一样的。
所以可以参照:https://www.cnblogs.com/imstrive/p/4838262.html

希望大家有类似问题可以参考下。
回复 使用道具 举报
Richard.Ma讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2018-10-11 11:44:34
6#
不客气
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 立即注册
返回顶部