(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';??????????? }??????? }