Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/330.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在邮件c#中同时追加输出和字符串?_C#_.net_Visual Studio - Fatal编程技术网

在邮件c#中同时追加输出和字符串?

在邮件c#中同时追加输出和字符串?,c#,.net,visual-studio,C#,.net,Visual Studio,目前我正在使用下面的1个代码,它工作得非常好 我正在获取服务器的CPU和内存利用率,并在循环10-15秒后发送邮件。此循环运行5次,间隔10秒 它发送了5封邮件 我只想发送一封邮件,而不是发送5封不同的邮件。每行下面有5行 for (int i = 0; i < 5; i++) { float cpu = getCPUCOunter(); float memory = getRamCounter(); ulong TotalMemory = new Micros

目前我正在使用下面的1个代码,它工作得非常好

我正在获取服务器的CPU和内存利用率,并在循环10-15秒后发送邮件。此循环运行5次,间隔10秒

它发送了5封邮件

我只想发送一封邮件,而不是发送5封不同的邮件。每行下面有5行

for (int i = 0; i < 5; i++)
{
    float cpu = getCPUCOunter();

    float memory = getRamCounter();

    ulong TotalMemory = new Microsoft.VisualBasic.Devices.ComputerInfo().TotalPhysicalMemory;

    TotalMemory = TotalMemory / 1024000;

    float PhysicalMemory = (TotalMemory - memory) * 100 / TotalMemory;

    SendMail("PROD Server CPU and Physical Memory Utalization", 
            "CPU Utilization =  " + Math.Round(cpu) + "%\r\n" 
             + Environment.NewLine + " \nPhysical Memory Utilization " + 
             Math.Round(PhysicalMemory) + "%" + Environment.NewLine + 
             " at " + DateTime.Now.ToString("HH:mm:ss tt"));
    Thread.Sleep(10000);
}
预期输出(一封邮件中的所有行):


只需将消息附加到字符串,并在最后发送所有内容:

string msg = string.empty
for (int i = 0; i < 5; i++)
{
    float cpu = getCPUCOunter();

    float memory = getRamCounter();

    ulong TotalMemory = new Microsoft.VisualBasic.Devices.ComputerInfo().TotalPhysicalMemory;
    TotalMemory = TotalMemory / 1024000;

     float PhysicalMemory = (TotalMemory - memory) * 100 / TotalMemory;

     msg += "CPU Utilization =  " + Math.Round(cpu) + "%\r\n" + Environment.NewLine + " \nPhysical Memory Utilization " + Math.Round(PhysicalMemory) + "%" + Environment.NewLine + " at " + DateTime.Now.ToString("HH:mm:ss tt") + Environment.Newline;
     Thread.Sleep(10000);
}

SendMail("PROD Server CPU and Physical Memory Utalization", msg)
string msg=string.empty
对于(int i=0;i<5;i++)
{
浮点cpu=getCPUCOunter();
浮点内存=getRamCounter();
ulong TotalMemory=新的Microsoft.VisualBasic.Devices.ComputerInfo().TotalPhysicalMemory;
TotalMemory=TotalMemory/1024000;
float PhysicalMemory=(总内存-内存)*100/总内存;
msg+=“CPU利用率=“+Math.Round(CPU)+”%\r\n“+Environment.NewLine+”\n物理内存利用率”+Math.Round(PhysicalMemory)+“%”+Environment.NewLine+”在“+DateTime.Now.ToString”(“HH:mm:ss tt”)+Environment.NewLine;
睡眠(10000);
}
SendMail(“产品服务器CPU和物理内存优化”,msg)

捕获数组中的值,并将“SendMail”方法调用移出for循环语句


在此for循环之后创建另一个for循环,以将存储在数组中的值显示为行数。

您编写了所有代码,但不知道StringBuilder?StringBuilder与问题并不相关。@ShellShock查看接受的答案,并将
string msg
替换为
StringBuilder msg
,这是推荐的方法。你现在能看到相关性吗?仍然不相关;问题不在于串接字符串的最有效方式。在这种情况下,StringBuilder是否“最佳”是有争议的,因为与字符串相比,它失去了一些可读性。它不接受换行符,它只是并排追加。我认为换行符不会在两行之间添加新行。
CPU Utilization = 0% Physical Memory Utilization 61% at 14:06:32 PM 
CPU Utilization = 0% Physical Memory Utilization 61% at 14:06:32 PM 
CPU Utilization = 0% Physical Memory Utilization 61% at 14:06:32 PM 
CPU Utilization = 0% Physical Memory Utilization 61% at 14:06:32 PM 
CPU Utilization = 0% Physical Memory Utilization 61% at 14:06:32 PM 
string msg = string.empty
for (int i = 0; i < 5; i++)
{
    float cpu = getCPUCOunter();

    float memory = getRamCounter();

    ulong TotalMemory = new Microsoft.VisualBasic.Devices.ComputerInfo().TotalPhysicalMemory;
    TotalMemory = TotalMemory / 1024000;

     float PhysicalMemory = (TotalMemory - memory) * 100 / TotalMemory;

     msg += "CPU Utilization =  " + Math.Round(cpu) + "%\r\n" + Environment.NewLine + " \nPhysical Memory Utilization " + Math.Round(PhysicalMemory) + "%" + Environment.NewLine + " at " + DateTime.Now.ToString("HH:mm:ss tt") + Environment.Newline;
     Thread.Sleep(10000);
}

SendMail("PROD Server CPU and Physical Memory Utalization", msg)