比如,一个进程(A)正在以一个图片为模板,进行处理后生成新图片,另一个进程(B)在处理完之后要删除之前的图片,可是程序提示进程(B)无法操作原图片,因为进程A占用了它

解决方案 »

  1.   

    System.Diagnostics.Process[] processes;
    processes = System.Diagnostics.Process.GetProcesses();
    foreach (System.Diagnostics.Process instance in processes)
    {
    Console.WriteLine(instance.MainModule.FileName);
    }
      

  2.   


    不太理解你说的, 猜测一下,你可能要加一个 image.Dispose(); 操作
      

  3.   

    简单地说就是“该进程无法访问文件“D:\Web\UI\adsPic\65070d22-281c-424f-87d3-1e9d8c33efb3.jpg”,因为该文件正由另一进程使用。 
    ”的问题,该进程实际上就是应用程序主进程,如果使用Thread.Abord(Thread.CurrentThread);会导致应用程序退出,如何在应用程序不退出的前提下,访问那个文件,对它执行修改,删除操作?
      

  4.   

    使用image.Dispose()也无效,使用
    m_ImgPhoto.Save(dstPic, GetImageFormat(srcPic));
    m_ImgPhoto.Dispose();
    File.Delete(srcPic);
    也提示无法访问文件,其中dstpic是新文件,srcPic是原文件,m_ImgPhoto是System.Drawing.Image 对象