一个WinForm中的异步例子
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using System.Threading;
namespace VS11
{
public partial class FrmLogin : Form
{
public delegate void Action();
public FrmLogin()
{
InitializeComponent();
}
private void btnLogin_Click(object sender, EventArgs e)
{
Action action = new Action(this.Login);
action.BeginInvoke(null, null);
}
private void btnExit_Click(object sender, EventArgs e)
{
this.Close();
}
private void Login()
{
this.btnLogin.Invoke(new Action(() => { this.btnLogin.Enabled = false; }));
this.txtUserName.Invoke(new Action(() => { this.txtUserName.Enabled = false; }));
this.txtPassWord.Invoke(new Action(() => { this.txtPassWord.Enabled = false; }));
this.libMessage.Invoke(new Action(() => { this.libMessage.Text = "正在链接数据库..."; }));
Thread.Sleep(1000);
this.libMessage.Invoke(new Action(() => { this.libMessage.Text = "正在查询用户表..."; }));
Thread.Sleep(1000);
this.libMessage.Invoke(new Action(() => { this.libMessage.Text = "正在验证用户名..."; }));
Thread.Sleep(1000);
this.libMessage.Invoke(new Action(() => { this.libMessage.Text = "正在验证密码..."; }));
Thread.Sleep(1000);
this.libMessage.Invoke(new Action(() => { this.libMessage.Text = "用户登录成功..."; }));
this.btnLogin.Invoke(new Action(() => { this.btnLogin.Enabled = true; }));
this.txtUserName.Invoke(new Action(() => { this.txtUserName.Enabled = true; }));
this.txtPassWord.Invoke(new Action(() => { this.txtPassWord.Enabled = true; }));
}
}
}
欢迎来到:码农很忙 。

浙公网安备 33010602011771号