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