首页 新闻 搜索 专区 学院

Control.BeginInvoke问题

0
悬赏园豆:100 [已关闭问题] 关闭于 2011-06-15 10:01

代码是这样的

public delegate void RtnDelegate(string com, int address, int cid, int rtn, int len, string data);

private void Rtn_DataRecived(string com, int address, int cid, int rtn, int len, string data)
        {
            this.BeginInvoke(new RtnDelegate(ShowDataRecived), com, address, cid, rtn, len, data);
        }

private void ShowDataRecived(string com, int address, int cid, int rtn, int len, string data)
        {

    txtShow.Text = data;       

        }

Control.BeginInvoke在Winform中这样调用

this.BeginInvoke(new RtnDelegate(ShowDataRecived), com, address, cid, rtn, len, data);

但是换成Web中,怎么调用BeginInvoke

我想到一个办法

RtnDelegate rd = ShowDataRecived;
 rd.BeginInvoke(com, address, cid, rtn, len, data, null, null);

但是如果这样写的话就txtShow.Text就显示不出任何值。

我断点调试,txtShow.Text明明有值,不晓得是什么原因

Coco•兮月的主页 Coco•兮月 | 初学一级 | 园豆:200
提问于:2011-05-18 09:03
< >
分享
所有回答(1)
0

因为你的 rd.BeginInvoke 是在服务端执行的,而你的txtShow是客户端页面的元素。

Launcher | 园豆:45045 (高人七级) | 2011-05-18 09:11
那该怎么解决这个问题呀?
支持(0) 反对(0) Coco•兮月 | 园豆:200 (初学一级) | 2011-05-18 10:03
@ホ-ā、乖‖:使用Ajax在客户端异步获取数据。
支持(0) 反对(0) Launcher | 园豆:45045 (高人七级) | 2011-05-18 11:03
在asp.net这样使用异步委托,当前页不会等待线程结束,而是页本身的代码执行完毕后就返回给客户端了,如果页返回的时候,线程没有执行完毕,Text不会有值
用Ajax在客户端异步获取数据怎么搞?
支持(0) 反对(0) Coco•兮月 | 园豆:200 (初学一级) | 2011-05-18 11:47
用jquery吧, 服务端去掉异步委托,$.post提交更新请求
支持(0) 反对(0) wgz | 园豆:1254 (小虾三级) | 2011-05-23 18:27
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册