class Program
{
static void Main(string[] args)
{
const string PATH = @"C:\My_PATH\";
const string FILE_NAME = "data_acquistion2";
const string DATETIME_STOP_RECORD = "01-04-15 17:18";
bool fichierNonExistant = false;
PerformanceCounter cpuCounter;
PerformanceCounter ramCounter;`
cpuCounter = new PerformanceCounter();
cpuCounter.CategoryName = "Processor";
cpuCounter.CounterName = "% Processor Time";
cpuCounter.InstanceName = "_Total";
ramCounter = new PerformanceCounter("Memory", "Available MBytes");
string actualPeriod = "";
if (!File.Exists(PATH + FILE_NAME + ".csv"))
{
FileStream myFs = File.Create(PATH + FILE_NAME + ".csv");
fichierNonExistant = true;
myFs.Close();
}
StreamWriter myWriter = new StreamWriter(PATH + FILE_NAME + ".csv", true);
if (fichierNonExistant == true)
{
myWriter.WriteLine("CPU Used (%)" + "," + "RAM Free (%)" + "," + "Hour and record Date");
}
while (actualPeriod != DATETIME_STOP_RECORD)
{
actualPeriod = DateTime.Now.ToString("dd/MM/yy HH:mm:ss");
// Console.WriteLine(periodeActuelle);
myWriter.WriteLine(cpuCounter.NextValue() + "," + ramCounter.NextValue() + "," + actualPeriod);
Thread.Sleep(20000); //If I add this the program doesn't write in the csv file
}
}
}`
Привет,Thread.Sleep() не работает в консольном приложении C#
У меня есть проблема с Thread.Sleep в C#, я разработаны код для сочинительства в% CPU (используется) и RAM непосредственно в файл csv.
Он работает без задержки, но я хочу писать эти значения каждые 20 секунд, поэтому мне нужно использовать Thread.Sleep (20000). Я также пробовал Task.Delay, и у меня такая же проблема.
Что делает «не работает» и «Проблема прямо здесь» * означает *? что происходит*? И что вы ожидаете от вас? –
несвязанный, но мне было бы очень маловероятно, чтобы он когда-либо * выходил из-за '! =' Сравнения строк; IMO, вы должны хранить 'actualPeriod' как' DateTime' и использовать '<' –
'DATETIME_STOP_RECORD' не включает секунды, но' actualPeriod' делает. Так что это будет циклично навсегда. Кроме того, в зависимости от вашей текущей культуры также может быть расхождение между '-' и'/'. Лучше всего послушать Marc и просто сравнить 'DateTime'. – juharr