今天帮朋友做了一个隐藏工作的程序,本来是可以写成服务的,但是对这个程序还是不适合做成服务;
网上搜了一下,csdn上也有问了这个问题,有的说在load里写this.hide();其实这样是不行的。
我试了一下,用委托其实蛮好的!代码如下:
EXFCODE:
///************************开始******************************
private void frmMain_Load(object sender, EventArgs e)
{
System.Threading.Timer t = new System.Threading.Timer(myHide);//myHide,就是我们要委托的方法
t.Change(0,0);//解释一下,第一个0表示不用等待就开始执行,第二个0表示只执行一次;
}
delegate void SetHideCallback();//定义委托
void SetHide()
{
if (this.InvokeRequired)//之所以要这样,是因为Windows的跨进程访问控件的安全性;
{
SetHideCallback c = new SetHideCallback(SetHide);
Invoke(c, new object[] { });
}
else
{
this.Hide();//执行隐藏
}
}
void myHide(object t)
{
SetHide();
((System.Threading.Timer)t).Dispose();
}
///***************结束***************