Windows Services: OnStart loop - do I need to delegate?

前端 未结 2 2012
失恋的感觉
失恋的感觉 2020-12-05 00:54

I\'ve got a windows service which scans a folder every n seconds for changes. I\'m getting \"the service did not respond to the start command in a timely fashion\" when tryi

2条回答
  •  无人及你
    2020-12-05 01:32

    OnStart should only start the work; it isn't responsible for doing it. This typically means spawning a new thread to do the actual work. It is expected that OnStart completes promptly. For example:

        public void OnStart(string[] args) // should this be override?
        {
            var worker = new Thread(DoWork);
            worker.Name = "MyWorker";
            worker.IsBackground = false;
            worker.Start();
        }
        void DoWork()
        {
            // do long-running stuff
        }
    

提交回复
热议问题