社区
C#
帖子详情
请问C#里多线程共享数据的问题
darkeria
2012-10-10 03:00:31
大家好,我写的WPF程序里加了一个后台线程用来采集数据,需要传人一个Model当做调用数据采集函数的参数,但是这个Model又有一些属性需要在图形界面当中刷新。因此碰到了共享数据的问题。
我现在的做法是每次开始采集之前建一个这个Model的深拷贝送进采集数据的线程,然后采完了再赋值给原先的Model,但是每次采集都要先申请个深拷贝总感觉不太舒服,如果我把这个Model跟Model的拷贝能像值类型那样固定下来不用分配空间就好了。
不知道这种情况大家一般怎么解决呢?
...全文
413
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#
多线程
编程实战Code源代码
本资源“
C#
多线程
编程实战Code源代码”来源于华章出版社,提供了丰富的实例来帮助开发者深入理解和应用
多线程
。 一、
C#
中的线程
C#
语言提供了对线程的内置支持,通过System.Threading命名空间,我们可以创建和管理...
C#
使用SerialPort和API串口的例子
在
多线程
环境中,特别是当需要更新UI时,直接操作UI控件可能会引发跨线程操作错误,因此建议使用委托或`Control.BeginInvoke`方法来确保线程安全。 例如,以下是一个使用API进行串口通信的简单示例: ```csharp ...
提高
C#
编程水平的50个要点
- **实践建议**:使用不可变值类型可以减少
多线程
环境中的同步
问题
。 #### 8. 在值类型中,确保0是一个合法的
数据
- **解释**:确保值类型能够正确地表示零值,这有助于防止空引用异常和其他类型的错误。 - **实践...
一次性分享一些.NET板网友高频经常索要的源代码
这些.NET相关的源代码样本涵盖了多个重要的开发主题,适合
C#
开发者深入学习和参考。下面将对每个文件中的关键知识点进行详细解释: 1. **Samples for Parallel Programming with the .NET Framework.zip**:这个...
C#
多线程
共享
数据
在
多线程
编程中,我们经常要使用
数据
共享
.
C#
中是如何实现的呢?很简单,只要把你要
共享
的
数据
设置成静态的就可以了.关键字static .如下: static Queue q1=new Queue(); static int b=0; 在这
里
我定义了一个整形变量b和...
C#
111,120
社区成员
642,537
社区内容
发帖
与我相关
我的任务
C#
.NET技术 C#
复制链接
扫一扫
分享
社区描述
.NET技术 C#
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
让您成为最强悍的C#开发者
试试用AI创作助手写篇文章吧
+ 用AI写文章