加载测试异常"文件正由另一个进程使用" C#

时间:2016-08-26 11:05:54

标签: c# performance load-testing webtest

我使用的是Visual Studio WebPerformance Tool,我的问题是我的所有网络测试都运行得很好但是当我运行负载测试(100个用户)时,我得到了一个异常"进程无法访问该文件,因为它正在被另一个进程使用"。我的结论是并发用户试图同时读取同一个文件。

在负载下无效的代码:

int x; //user number
if(File.Exists("C:\\Users\\Desktop\\Tests\\users5a.txt"))
{
    var last_number = File.ReadAllLines("C:\\Users\\Desktop\\Tests\\users5a.txt").Last();
    x = int.Parse(last_number) + 1;
}
else
    x = 0;

System.IO.StreamWriter file = new System.IO.StreamWriter("C:\\Users\\Desktop\\Tests\\users5a.txt", true);
file.WriteLine(x);
file.Close();

1 个答案:

答案 0 :(得分:1)

这有效:

 EventWaitHandle waitHandle = new EventWaitHandle(true,EventResetMode.AutoReset, "SHARED_BY_ALL_PROCESSES");

    waitHandle.WaitOne();

    int x; //user number
    if (File.Exists("C:\\Users\\Desktop\\Tests\\users5a.txt"))
    {
        var last_number = File.ReadAllLines("C:\\Users\\Desktop\\Tests\\users5a.txt").Last();
        x = int.Parse(last_number) + 1;
    }
    else
        x = 0;

    System.IO.StreamWriter file = new System.IO.StreamWriter("C:\\Users\\Desktop\\Tests\\users5a.txt", true);
    file.WriteLine(x);
    file.Close();
    file.Dispose();
    waitHandle.Set();