主要问题:
第一次运行(按F5或者ctl+F5)程序时正常,对代码或者窗体的某个属性值进行更改,然后再运行(按F5或者ctl+F5),程序就会报错:错误 1 无法将文件“obj\Debug\VechileManagement.exe”复制到“bin\Debug\VechileManagement.exe”。文件“bin\Debug\VechileManagement.exe”正由另一进程使用,因此该进程无法访问此文件。 VechileManagement然后在任务管理器当中会看到相应的进程正在运行,具体表现为程序退出时,进程无法结束。
退出方式:
添加Exit菜单,点击之后退出。后台代码如下,我依次试过,但都不行。
第一种:Close();第二种:this.Dispose();            
Application.Exit();第三种:System.Diagnostics.Process.GetCurrentProcess().Kill();第四种:   Process   proc   =   Process.GetCurrentProcess(); 
            proc.Kill(); 第五种:System.Diagnostics.Process tt = System.Diagnostics.Process.GetProcessById(System.Diagnostics.Process.GetCurrentProcess().Id); 
            tt.Kill(); 
但是都不行,急求帮助,帮我想想办法,感激不尽!

解决方案 »

  1.   

    你一次debug,一次release,就会出现这种问题。删掉一个。
    然后杀进程时,可以用
                System.Diagnostics.Process[] myProcesses = System.Diagnostics.Process.GetProcesses();            foreach (System.Diagnostics.Process myProcess in myProcesses)
                {
                    if (myProcess.ProcessName.Contains("VechileManagement"))
                    {
                        myProcess.Kill();
                    }
                }
      

  2.   


    强行杀掉的想法不太好,还是得找找没有退出的原因,貌似你的系统有多线程(或者调用了非托管进程)。
    如果是调用了多线程,必须在退出时通知子线程退出,并且用sonthread.join()方法等待子线程结束后再退出。如果有其他软件实例(如EXCEL),就必须释放干净对象后才能退出。
      

  3.   


    谢谢你的指导!
    你的代码我添加了试过,还是不行,任务管理器中,VechileManagement.vshost.exe进程,始终关不掉,手动都关不了。
      

  4.   

    VechileManagement.vshost.exe这个是vs调试的进程,并非程序本身.
    有VechileManagement.vshost.exe进程运行是不影响跑主程序的,你可以试试