Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/293.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# ASP.NET/Debug中的后台任务_C#_Asp.net_Debugging_Asynchronous - Fatal编程技术网

C# ASP.NET/Debug中的后台任务

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

我有一个不重要的任务;如果使用该网站,则应每隔一段时间运行一次

所以我尝试了这种方法:

任务可能很长,所以我希望它是异步的。。。这样导航就不会被后台任务停止

我不明白的是,当我开始调试(连接到进程w3wp.exe)时,在停止调试之前,我不能再在站点上导航了

以下是代码(ResourceService是托管在同一项目中的ISS上的WCF服务):


使用后台工作人员

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();