C# ASP.NET/Debug中的后台任务
我有一个不重要的任务;如果使用该网站,则应每隔一段时间运行一次 所以我尝试了这种方法: 任务可能很长,所以我希望它是异步的。。。这样导航就不会被后台任务停止 我不明白的是,当我开始调试(连接到进程w3wp.exe)时,在停止调试之前,我不能再在站点上导航了 以下是代码(ResourceService是托管在同一项目中的ISS上的WCF服务):C# ASP.NET/Debug中的后台任务,c#,asp.net,debugging,asynchronous,C#,Asp.net,Debugging,Asynchronous,我有一个不重要的任务;如果使用该网站,则应每隔一段时间运行一次 所以我尝试了这种方法: 任务可能很长,所以我希望它是异步的。。。这样导航就不会被后台任务停止 我不明白的是,当我开始调试(连接到进程w3wp.exe)时,在停止调试之前,我不能再在站点上导航了 以下是代码(ResourceService是托管在同一项目中的ISS上的WCF服务): 使用后台工作人员 BackgroundWorker worker; worker = new BackgroundWorker(); worker
使用后台工作人员
BackgroundWorker worker;
worker = new BackgroundWorker();
worker.DoWork += new DoWorkEventHandler(worker_DoWork);
worker.RunWorkerCompleted += new RunWorkerCompletedEventHandler(worker_RunWorkerCompleted);
worker.RunWorkerAsync();
然后在DoWork处理程序中调用所需的方法
我不明白的是
当我开始调试时(连接到
进程w3wp.exe)我无法继续导航
在我停止之前,该网站不再存在
调试
只是一个猜测,但是你有一个断点集吗?一旦您遇到断点,w3wp进程中的执行将在该点停止,因此您将无法在站点中“导航”。如果我理解的话:线程包含在(w3wp)进程(进程?)中,因此即使任务在另一个线程中异步启动,也会在断点处停止(在异步任务内部)虽然调试将始终阻止进程的所有线程(因此我无法再导航)?在调试时,您可以在VS:Debug | Windows | threads中查看菜单项,以查看该进程拥有的所有线程并在它们之间切换。是的,它们都将暂停。希望这对您有所帮助。
BackgroundWorker worker;
worker = new BackgroundWorker();
worker.DoWork += new DoWorkEventHandler(worker_DoWork);
worker.RunWorkerCompleted += new RunWorkerCompletedEventHandler(worker_RunWorkerCompleted);
worker.RunWorkerAsync();