日期:2014-05-18  浏览次数:20759 次

C#一个方法里代码同时运行(不用线程)
我想问的是如果一个方法里有2段代码向下面这样

C# code

private void init()
{
    timer.start();
    Form f = new Form();
}



timer是一个定时器,用来运行一个进度条的,我的Form的构造函数里代码很多,会运行20.30秒吧,但是进度条每次都是要等界面实例化后才会出来,也就是说timer.start()方法会在整个方法运行后才会执行。不能用线程,因为界面里会用线程初始化很多控件,会出现一个线程创建的控件不能作为另一线程创建控件的父级这种错误,大家有什么好方法吗?

------解决方案--------------------
程序是顺序执行的,并不是说timer.start()在整个方法运行后才会执行,而是Form f = new Form();的构造函数执行时间太久,看上去好像是在整个方法运行后才执行的样子
------解决方案--------------------
一个线程创建的控件不能作为另一线程创建控件的父级这种错误

看看委托
------解决方案--------------------
BackgroundWorker 可以考虑下看看
------解决方案--------------------
你得使用委托才行