WPF应用程序启动两次错误

时间:2015-06-03 06:52:46

标签: wpf c#-4.0

当我快速按两次输入应用程序时,第二次启动将崩溃。我在日志中找到了原因:

  

“进程无法访问文件'.. \ filemanifest.xml',因为它   正在被另一个进程使用。“

我已经在很多网站上进行了研究,只得到了如何阻止应用程序两次启动的答案,而不是如何允许应用程序多次启动。感谢您的所有帮助。

如何在不崩溃的情况下让我的应用运行两次?

1 个答案:

答案 0 :(得分:0)

添加到您的应用程序metod正在使用检查文件:

protected virtual bool IsFileLocked(FileInfo file)
{
    FileStream stream = null;

    try
    {
        stream = file.Open(FileMode.Open, FileAccess.ReadWrite, FileShare.None);
    }
    catch (IOException)
    {
        //the file is unavailable because it is:
        //still being written to
        //or being processed by another thread
        //or does not exist (has already been processed)
        return true;
    }
    finally
    {
        if (stream != null)
            stream.Close();
    }

    //file is not locked
    return false;
}

只是

    for (int i = 0; i < 100; i++)
            {
                if (IsFileLocked(file))
                {
                    //Add what you want
                    Thread.Sleep(1000);
                }
                else
                {
                    //Add what you want
                    return;
                }
            }