
今天帮朋友做了一个隐藏工作的程序,本来是可以写成服务的,但是对这个程序还是不适合做成服务;
网上搜了一下,csdn上也有问了这个问题,有的说在load里写this.hide();其实这样是不行的。
我试了一下,用委托其实蛮好的!代码如下:
///************************开始****************************** 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(); } ///***************结束***************