社区
C#
帖子详情
请问C#里多线程共享数据的问题
darkeria
2012-10-10 03:00:31
大家好,我写的WPF程序里加了一个后台线程用来采集数据,需要传人一个Model当做调用数据采集函数的参数,但是这个Model又有一些属性需要在图形界面当中刷新。因此碰到了共享数据的问题。
我现在的做法是每次开始采集之前建一个这个Model的深拷贝送进采集数据的线程,然后采完了再赋值给原先的Model,但是每次采集都要先申请个深拷贝总感觉不太舒服,如果我把这个Model跟Model的拷贝能像值类型那样固定下来不用分配空间就好了。
不知道这种情况大家一般怎么解决呢?
...全文
373
6
打赏
收藏
请问C#里多线程共享数据的问题
大家好,我写的WPF程序里加了一个后台线程用来采集数据,需要传人一个Model当做调用数据采集函数的参数,但是这个Model又有一些属性需要在图形界面当中刷新。因此碰到了共享数据的问题。 我现在的做法是每次开始采集之前建一个这个Model的深拷贝送进采集数据的线程,然后采完了再赋值给原先的Model,但是每次采集都要先申请个深拷贝总感觉不太舒服,如果我把这个Model跟Model的拷贝能像值类型那样固定下来不用分配空间就好了。 不知道这种情况大家一般怎么解决呢?
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
6 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
vssvss
2012-10-11
打赏
举报
回复
可以用backgroundworker 来实现
darkeria
2012-10-11
打赏
举报
回复
你的意思是我在数据采集的线程里访问UI组件是吗?
你们是不是在找BUG
2012-10-11
打赏
举报
回复
之前我开过帖子讨论过这个问题,虽然有几种能够实现的做法,但不是线程安全的,还是在自己的线程中取得数据,然后再ui线程中更新ui的好。另外不明白你为什么要深拷贝一个来传值,
只要model不直接操作画面ui,线程中是可以直接对这个直接操作的
niss
2012-10-10
打赏
举报
回复
这个不是共享的问题,只是UI不能跨线程访问的限制,你需要用Invoke来保证UI的组件被跨线程访问
ViewStates
2012-10-10
打赏
举报
回复
为什么要DEEP CLONE?
风之影子
2012-10-10
打赏
举报
回复
hashtable
面向对象
C#
初级入门精讲(2)
C#
语言基础
欢迎加入QQ群538724338提问,这样老师能及时看到并回复【课程特色】1、课程设计循序渐进、讲解细致、通俗易懂、非常适合自主学习2、教学过程实例丰富、强调技术关键点、并且分析透彻3、物美价廉:本着知识
共享
、帮助更多有需求者原则,毫无保留,不另外设置VIP课程。此外,提供源代码+配套练习+答疑+上课日志。
C#
多
线
程开发:使用lock语句同步多个
线
程
在多个
线
程之间
共享
数据
时,需要考虑
线
程同步
问题
,必须确保每次只有一个
线
程访问和改变
共享
数据
。
C#
中使用lock语句可以轻松地设置和解除锁定以期达到每次只有一个
线
程访问和改变
共享
数据
的目的。 下面是一个多
线
程访问
共享
数据
的实例,看看在没有进行同步操作的情况下会出现什么样的
问题
? [csharp] view plain copy usi
C#
多
线
程开发6:使用lock语句同步多个
线
程
在多个
线
程之间
共享
数据
时,需要考虑
线
程同步
问题
,必须确保每次只有一个
线
程访问和改变
共享
数据
。
C#
中使用lock语句可以轻松地设置和解除锁定以期达到每次只有一个
线
程访问和改变
共享
数据
的目的。 下面是一个多
线
程访问
共享
数据
的实例,看看在没有进行同步操作的情况下会出现什么样的
问题
? using System; using System.Threading; namespace LockE
操作系统
进程和
线
程的区别? 答:
共享
资源:同一进程内的
线
程
共享
本进程的资源,但是进程之间的资源是独立的。 切换难度:CPU切换一个
线
程比切换进程花费小。 通信方式:
线
程之间的通信更方便,同一进程下的
线
程
共享
全局变量、静态变量等
数据
,而进程之间的通信需要以通信的方式进行。 进程的通信方法? 答:1)
共享
内存 2)管道 PIPES FIFO 3)消息机制 进程的同步方法? 答:临界区(单进程
里
多
线
程同步) ...
初学及入门
C#
C#
是一门用于开发web服务器,客户端的开发语言。
C#
既可以解决日常编程算法
问题
,也可以解决软件开发
问题
。
C#
是从C++继承而来,既有C++和硬件交互的功能,也能像java一样web开发。很多人入门一门编程语言可能会有很多
问题
,本门课程从自身学习编程语言的基础上讲解
C#
,并且并行比较C,C++,java等语言,从而能够更整体理解编程语言入门的方法。
C#
109,895
社区成员
642,646
社区内容
发帖
与我相关
我的任务
C#
.NET技术 C#
复制链接
扫一扫
分享
社区描述
.NET技术 C#
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
让您成为最强悍的C#开发者
试试用AI创作助手写篇文章吧
+ 用AI写文章