有人能向我解释一下吗?
我有这样的代码,但我不知道它的含义。
我不确定具体是什么,但我认为这是针对“ConnectState”对象/类的自定义事件处理程序声明。
void ConnectionManager_ConnectionFailed(object sender, EventArgs e)
{
BeginInvoke((MethodInvoker)delegate()
{
if (cbAutoConnect.Checked)
Connect();
else
State = ConnectState.NotFound;
});
}
我的问题:
这个方法是一个EventHandler吗?
这段代码的目的是什么?
BeginInvoke((MethodInvoker)delegate() {
当执行条件“Else”时,“State”会发生什么变化?
注:
Connect是一个方法。
State是由此代码描述的枚举。
public ConnectState State
{
get
{
return _State;
}
{
if (_State == value)
return;
_State = value;
switch (value)
{
case ConnectState.Connected:
DoingSomeThing;
break;
case ConnectState.Connecting:
DoingSomeThing;
break;
case ConnectState.NotFound:
DoingSomeThing;
break;
}
if (StateChanged != null)
StateChanged(this, new EventArgs<ConnectState>(value));
}
}
另一个提示
枚举初始化
public enum ConnectState { Connected, Connecting, NotFound }
ConnectState _State = ConnectState.NotFound;
我不确定具体是什么,但我认为这是针对“ConnectState”对象/类的自定义事件处理程序声明。
public EventHandler<EventArgs<ConnectState>> StateChanged;
delegate()
是一个方法指针,而MethodInvoker
则代表一个委托。下面@user3036342说connect()
会一直重复执行,只要cbAutoConnect被选中。为什么会这样?我没有找到循环的代码。如果有任何关于这段代码的问题:BeginInvoke
类似于Thread.Start()
吗? - user3332360