在邮件c#中同时追加输出和字符串?
目前我正在使用下面的1个代码,它工作得非常好 我正在获取服务器的CPU和内存利用率,并在循环10-15秒后发送邮件。此循环运行5次,间隔10秒 它发送了5封邮件 我只想发送一封邮件,而不是发送5封不同的邮件。每行下面有5行在邮件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
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)