首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > C# >

委托调用的有关问题

2012-04-18 
委托调用的问题问一个委托的问题我在一个类里面声明的一个TimerCallback委托变量,然后把他传给一个计时器,

委托调用的问题
问一个委托的问题
我在一个类里面声明的一个TimerCallback委托变量,然后把他传给一个计时器,如下:

C# code
public class SystemPowerManager    {        private Timer tmrGetPowerStatus;        private SYSTEM_POWER_STATUS_EX2 powStatus;        public TimerCallback GetPowerStatusCallback;        public SystemPowerManager()        {            GetPowerStatusCallback = GetSystemPowerStatus;            tmrGetPowerStatus = new Timer(GetPowerStatusCallback, powStatus, 0, 2000);        }        private void GetSystemPowerStatus(object status)        {            NativeMethods.GetSystemPowerStatusEx2(ref powStatus, (uint)Marshal.SizeOf(powStatus), false);        }    }

在构造函数里面给委托赋值,然后实例化timer,每隔两秒执行委托.

然后我再一个窗口的Form_Load里面给这个委托添加一个注册方法:
powerManager.GetPowerStatusCallback += headbar.GetBatteryStatusCallback;
GetBatteryStatusCallback是HeadBar类的一个方法.
运行时每次可以调用PowerManager类的GetSystemPowerStatus方法,但是后来注册的方法总是不被执行,这是怎么回事??


[解决办法]
public SystemPowerManager()
{
GetPowerStatusCallback = GetSystemPowerStatus; <===== ?????
tmrGetPowerStatus = new Timer(GetPowerStatusCallback, powStatus, 0, 2000);
}

powerManager.GetPowerStatusCallback += headbar.GetBatteryStatusCallback <==== ????;

热点排行