c# - 运行多个进程、C++ 和 Excel 导致的错误

标签 c# asp.net asynchronous

这是我的代码:

private void button1_Click(object sender, EventArgs e)
{

    for(i = 0; i < 500; i++)
    {
        CallingTailorCode;
        getvalue();
        WriteData();

    }
}
public void getvalue()
{
    string[] lines = File.ReadAllLines("C:\\Users\\bryan\\Desktop\\generationfile.txt");
    foreach (string line in lines)
    {
        notepadvalue = line;
    }
}
private void CallingTailorCode()
{
    Process callcfunction = new Process();
    callcfunction.StartInfo.UseShellExecute = false;
    callcfunction.StartInfo.FileName = "C:\\Users\\bryan\\Desktop\\ConsoleApplication1\\Debug\\ConsoleApplication1.exe";
    callcfunction.Start();
    Thread.Sleep(1000);
}
public void WriteData()
{
    Excel excel = new Excel("C:\\Users\\bryan\\Desktop\\SphereConvRws.xlsx", 1);

    excel.WriteToCell(i, 0, notepadvalue);
    excel.Save();
    excel.close();
    Thread.Sleep(1000);

}

CallingTailorCode() 是 c++ 和代码,我将输出存储在 .txt 文件中。

getValue() 我在其中读取 .txt 文件并将其存储为变量。

最后,WriteData() 我将值存储在 Excel 工作表中。

如果我将循环设置为 (i < 10) ,则不会出现错误,但如果我将循环设置为较大的数字,例如 500 或 1000 ,则会出现错误,例如 generationfile.txt正在被其他进程使用。我想知道这个问题是否与程序不是异步有关?我应该如何使这段代码异步?

我为 CallingTailorCode 设置线程(1000),因为它是一个遗传算法代码,让它运行,我不确定我是否做对了

最佳答案

我应该使用 proccess.WaitForExit() 而不是使用 thread.sleep 。它使程序运行得更快,循环内的方法有条不紊地运行。

关于c# - 运行多个进程、C++ 和 Excel 导致的错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53113970/

相关文章:

c# - 这场比赛的正则表达式

c# - 使用 JSON.NET 和 NodaTime 从 JSON 反序列化 LocalTime 导致 NodaTime.Text.UnparsableValueException

c# - 阅读中继器内的文本框

asp.net - WebForms 身份验证作为 MVC 过滤器

asp.net - Ajax控制工具包Rating Control-覆盖RatingBehavior.js

javascript - Promise Chaining 和 .then/.catch 语句

c# - 哪个是 delphi "class of "(类的类型)的 C# 声明?

javascript - 从 javascript 调用 ASP.NET MVC 应用程序的 URL

ios - 同步嵌套的异步任务

node.js - 如何将 async/await 与 mongoose 一起使用