当前位置:编程学习 > C#/ASP.NET >>

关于多线程的问题(System.Threading.Timer)

我现在需要一个功能,动态创建的多线程
                       
                int type=getType(string str); 
                 //开始实例化线程,定时调用发送消息
                        System.Threading.TimerCallback timerCB1 = new TimerCallback(application1);

                        timer[1] = new System.Threading.Timer(timerCB1, null, 1000, 2000);

                System.Threading.TimerCallback timerCB2 = new TimerCallback(application1);

                timer[2] = new System.Threading.Timer(timerCB2, null, 1000, 2000);
//更多线程

大家都知道application1是反复执行的回调方法:

    public void application1(object sender)
    {
        //Common.CatchError.writeFile(Common.CatchError.FilePath, DateTime.Now.ToString());
        //这里是处理代码
    }

问题是我现在要做的方法(application1)是要根据一个参数(sender)进行判断进行判断,然后才决定相应不同的处理代码
而这个参数又是在创建线程的的这个方法里读取的(在线程创建之前就有了),也就是要把创建线程之前的那个type传递到方法application1里面(参数sender),请问如何传递才是正确的呢。 --------------------编程问答-------------------- 没人回答么?也就是怎么进行参数传递问题。 --------------------编程问答-------------------- 。。。,我终于自己搞定了。

                        //线程1开始,在程序启动后1秒开始执行,并且每隔2秒调用一次application1方法。
                        System.Threading.TimerCallback timerCB1 = new TimerCallback(application1);

                        timer[1] = new System.Threading.Timer(timerCB1, PM_config, 1000, 2000);

原来的这个new System.Threading.Timer(timerCB1, PM_config, 1000, 2000)里面的第二个参数的我没转过弯来。这个参数就是用来传递参数的,我原来想着我有多个参数,要怎么传递过去呢。刚刚我将所有的参数封装到一个对象里,直接把对象作为参数进行传递。搞定。 --------------------编程问答-------------------- 自问自答,顶一下;

其实System.Threading.Timer 的执行事件就是多线程的;

你只要在这里面实现你要实现的东西就可以了,

这个Timer和平时拉到窗体上的Timer控件是有区别的,时间经度也不一样;

mark --------------------编程问答-------------------- 建议LZ以后提问的时候 排版清晰点,大家都不太有耐心的,呵呵;
补充:.NET技术 ,  .NET技术前瞻
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,