微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

webservice 异步调用与控件操作

(1)异步调用:

  shPDA.WRServer.Service yq = new shPDA.WRServer.Service();
            string sql = "select count(*) from 水位预警 where 发布时间>'" + System.DateTime.Now.ToShortDateString() +"'";
            yq.Begingetapp(sql,new AsyncCallback(MyHelloWorld),yq);//调用异步方法

//声明异步方法

 public void MyHelloWorld(IAsyncResult iar)
        {
            int count = 0;
            shPDA.WRServer.Service yq = (shPDA.WRServer.Service)iar.AsyncState;
            DataSet dt = yq.Endgetapp(iar);
            //结束远程调用
            string tmp = dt.Tables[0].Rows[0][0].ToString();
            if (tmp != "")
                count = System.Convert.ToInt32(tmp);
            dt = yq.getapp("select count(*) from 降雨预警 where 发布时间>'" + System.DateTime.Now.ToShortDateString() + "'");
            tmp = dt.Tables[0].Rows[0][0].ToString();
            if (tmp != "")
                count += System.Convert.ToInt32(tmp);


            if (count > 0)
            { SetText( "今天是" + System.DateTime.Now.ToString("yyyy年MM月dd日,今日" + count.ToString() + "处预警提示!")); }
            else
            {
              SetText("今天是" + System.DateTime.Now.ToString("yyyy年MM月dd日,今日无预警提示!")  );

//settext即下边的委托操作
            }

        }

 

(2)控件操作:

      private delegate void SetTextCallback(string text);


        private void SetText(string text)
        {
            // Invokerequired需要比较调用线程ID和创建线程ID
            // 如果它们不相同则返回true
            if (this.alphaLabel2.Invokerequired)
            {
                SetTextCallback d = new SetTextCallback(SetText);
                this.Invoke(d,new object[] { text });
            }
            else
            {

                this.alphaLabel2.Text += text + '/n';            }        }

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐