private void Login()
{
bll.Login(txtAccount.Text.Trim(), txtPassword.Text.Trim());
} private void menuLogin_Click(object sender, EventArgs e)
{
FrmWait.ShowWait("请稍候, 正在登录..."); Thread td = new Thread(new ThreadStart(Login));
td.Start();
}
这句在执行时,会报控件线程访问出错。
请问怎么解决?另外,曾经见到某人用一个lampda表达式解决了那一大堆委托,请问那句代码怎么写?
多谢!
public delegate void CallLogin(); private void Login()
{
if(InvokeRequired)
{
Invoke(new CallLogin(Login));
return;
}
bll.Login(txtAccount.Text.Trim(), txtPassword.Text.Trim());
} private void menuLogin_Click(object sender, EventArgs e)
{
FrmWait.ShowWait("请稍候, 正在登录..."); Thread td = new Thread(new ThreadStart(Login));
td.Start();
}
private void Login()
{
if(控件.InvokeRequired)
{
控件.Invoke(new CallLogin(Login));
return;
}
}
class Account
{
public string account
{
get;set;
}
public string Password
{
get;
set;
}
public Account(string strAccount,string strPassword)
{
account=strAccount;
Password=strPassword;
}
}
private void Login(objcet para)
{
bll.Login((para as Account).account, ((para as Account).Password);
} private void menuLogin_Click(object sender, EventArgs e)
{
FrmWait.ShowWait("请稍候, 正在登录..."); Thread td = new Thread(new ParameterizedThreadStart(Login));
td.Start(new Account(txtAccount.Text.Trim(), txtPassword.Text.Trim() ) );
}
{
Invoke(new System.Windows.Forms.MethodInvoker(delegate() {
bll.Login(txtAccount.Text.Trim(), txtPassword.Text.Trim());
}));
}
http://blog.csdn.net/jinjazz/archive/2008/12/30/3646652.aspx
在WM手机精简框架中似乎不支持?