日期:2014-05-17  浏览次数:21043 次

Windows服务中使用线程
  //Windows服务后台代码     
    protected override void OnStart(string[] args)
        {
            // TODO: 在此处添加代码以启动服务。
            Transfer.Start();
            
        }
//Transfer类中start函数
        public static void Start()
        {         
            thread1= new Thread(new ThreadStart(run_transfer));          
            thread1.Start();
        }
Windows服务直接在start中调用方法,没有使用Timer。
每次run_transfer好像只能运行一次,请教是什么问题?
------解决方案--------------------
建议在线程内建立循环来调用,并提供公共标志位来结束线程
类似
public bool isWorking=true;

private void run_transfer(){
    while(isWorking){
        //ToDo
    }
}
------解决方案--------------------
引用:
建议在线程内建立循环来调用,并提供公共标志位来结束线程
类似
public bool isWorking=true;

private void run_transfer(){
    while(isWorking){
        //ToDo
    }
}

+1