关于UI展示异步数据的问题

chichenzhe 2012-10-09 05:43:25
scene1,scene2,scene3... 等多个类
程序会在不同的时候切换到不同的 scene 类上.

这类现象 可以直接联想到 winform 程序的界面间切换


我的问题来了:

如果有另外一个线程不停的在获得数据(好比异步socket)
这个时候 socket获得的数据 如何 反映到界面上呢?

比如我单击一个button 然后 网络会异步传回数据 "接到指令,处理成功"
而我则是想把上面那句话展示出来.

但是网络模块用什么方式 获得 scene 句柄呢, 并且,他如何知道是那个 scene 正在运行呢?

有很多方法我能实现. 比如静态啊, 状态控制啊之类的.

但是, 有没有什么更好的方式呢? 我要优雅点的.

我想过用委托. 但后来想了想也不行. 因为网络模块根本拿不到委托句柄.



在之前我做server端开发的时候这些问题是不需要考虑的. 因为我的 任何 scene都是常驻内存的单例.
如果从网络上获得了消息. 直接从单例里拿需要执行的方法句柄.
...全文
191 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
St_Jar 2012-10-10
  • 打赏
  • 举报
回复
在你的异步方法里用Invoke设置ui的控件(text或label)显示message
St_Jar 2012-10-10
  • 打赏
  • 举报
回复
用Invoke试一下
zhongfenglin 2012-10-10
  • 打赏
  • 举报
回复
哎... 来几个人领分了
chichenzhe 2012-10-10
  • 打赏
  • 举报
回复
哎... 来几个人领分吧
chichenzhe 2012-10-09
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 的回复:]

不太明白...你用socket 接收了数据,那总得用个 byte存起来吧..那么这个byte就得实例吧.调用这个实例不就得了么?
[/Quote]

我举例子已经清楚得不行了啊.....你怎么...

比如我单击一个button 然后 网络会异步传回数据 "接到指令,处理成功"
而我则是想把上面那句话展示出来.
由于我是异步处理的. 所以网络在解析完所有协议, 获得了 上面哪句话之后, 怎么把这句话展示出来呢?

肯定不能在button事件里面show个ui去展示这句话. 因为 我说了, 是异步socket.
zhanglong19891129 2012-10-09
  • 打赏
  • 举报
回复
不太明白...你用socket 接收了数据,那总得用个 byte存起来吧..那么这个byte就得实例吧.调用这个实例不就得了么?
chichenzhe 2012-10-09
  • 打赏
  • 举报
回复
我现在做客户端的这个程序, 不可能所有 scene 都做成单例. 因为这从程序角度而言是不合理的.


请求的发起者发送了数据给网络, 网络回馈了数据.

但是网络线程却找不到 这个数据该给什么对象去展示.

我认为这个问题有广谱性, 大家很多做 客户端的程序员应该都有解决方案吧 (比较优雅的)?

110,526

社区成员

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

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

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