C#-仅当数字更改时循环
我的代码示例:C#-仅当数字更改时循环,c#,C#,我的代码示例: string value = client.DownloadString("http://www.site.com/value.html"); // There is a value of something like a1x6b2xs2 (just one line with random numbers that changes randomly). Console.WriteLine(value); Console.ReadKey(); 这就是全部代码!我需要让控制台写的
string value = client.DownloadString("http://www.site.com/value.html"); // There is a value of something like a1x6b2xs2 (just one line with random numbers that changes randomly).
Console.WriteLine(value);
Console.ReadKey();
这就是全部代码!我需要让控制台写的数字再次只有当在网站上的值被改变!并使其成为一个不间断循环,只需反复写入数字,但前提是旧值已更改。为什么不将前一个数字保留在变量中,并在打印前进行检查
int previousNumber = int.MinValue; // some invalid value
while (isRunning) {
// wait three minutes
int currentNumber = GetNumberFromSite();
if (currentNumber != previousNumber) {
Console.WriteLine(currentNumber);
previousNumber = currentNumber;
}
}
private System.Threading.Timer checkNumberTimer;
private int currentNumber;
private void InitTimer()
{
//start immediately, interval is in TimeSpan
checkNumberTimer = new System.Threading.Timer(
timer_Elapsed,
null,
TimeSpan.Zero,
Properties.Settings.Default.Interval
);
}
private void timer_Elapsed(Object state)
{
int oldNumber = currentNumber;
currentNumber = CheckNumber();
if( oldNumber != currentNumber )
ShowNewNumber( currentNumber );
}
您只需要存储旧值,并在输出新值之前检查它
int oldVal = -1;
while (true)
{
int newVal = GetNewValue();
if (newVal != oldVal)
{
Console.WriteLine(newVal);
oldVal = newVal ;
}
Thread.Sleep(1000 * 60 * 3)
}
大概是这样的:
int current = ...;
int prev = current;
while(true)
{
// get new number in current
if(current != prev)
Console.WriteLine(current);
prev = current;
// wait 3 min
}
您可以使用定期检查该数字是否已更改的
private System.Threading.Timer checkNumberTimer;
private int currentNumber;
private void InitTimer()
{
//start immediately, interval is in TimeSpan
checkNumberTimer = new System.Threading.Timer(
timer_Elapsed,
null,
TimeSpan.Zero,
Properties.Settings.Default.Interval
);
}
private void timer_Elapsed(Object state)
{
int oldNumber = currentNumber;
currentNumber = CheckNumber();
if( oldNumber != currentNumber )
ShowNewNumber( currentNumber );
}
将值写入变量,然后检查它是否已更改
int old, new
new = getValue(file.html)
if new != old then
write(new)
old = new
你可以自己翻译成工作代码。当然,不会那么简单。哦,
int?
。我没想到那个。好主意。这个问题我不太清楚。你的意思是:intnewvalue=getValueFromHtml();如果(newValue!=oldValue)显示();旧值=新值代码>?或者您是否希望停止定期检查差异,并以某种方式被告知文件发生了更改(这可能是可行的,也可能是不可行的)?我刚刚编辑了问题,以便现在有人能够理解:PDid您尝试提供的任何答案吗?我想大多数人都明白你在寻找什么,因为每个人都给出了相似的答案。甚至是我的孩子。