如何解决我想每 60 秒将最小数字增加 5,并且不得超过 Xamarin/C# 中的最大数字
所以,我正在处理一个我显示两个金额的项目。第一个是最小数量,它是恒定的。但是,第二个是每60秒的进度(增量),但该数字不得超过一定时间内设置的最大数量。 一个例子是: 我的最低金额为 10,000。 最大金额 = 50,000。 储蓄期限= 93 天。 现在,我希望进度计数(显示储蓄如何增长的标签)在特定给定时间(可能是 60 秒)内继续增加,直到第 93 天不超过最大数量。
我的问题是,我如何实现这一目标?什么方法最能得到好的结果?
这是我目前的实现:
public string TotalBalance
{
get
{
//string newBal;
double min;
double max;
double dys;
dys = double.Parse(days);
double calc = dys * 1440;
min = double.Parse(amount);
max = double.Parse(totalReturn);
double costpermin = max / calc;
if (dys>0)
{
string kems;
Device.StartTimer(new TimeSpan(0,60),() =>
{
// do something every 60 seconds
Device.BeginInvokeOnMainThread(() =>
{
double pel = min + costpermin++;
string polo = pel.ToString();
string Bal = Math.Round(Convert.Todouble(polo),2).ToString("C",System.Globalization.CultureInfo.GetCultureInfo("en-us")).Replace("$","N");
kems = Bal;
var updamt = Bal;
MessagingCenter.Send<object,string>(this,"timer",updamt);
});
return true; // runs again,or false to stop
});
return kems;
}
else
{
string meeBal = Math.Round(Convert.Todouble(this.totalReturn),"N");
return meeBal;
}
}
set
{
TotalBalance = value;
OnPropertyChanged(nameof(TotalBalance));
}
}
我在模型中添加了 deviceTimer 以便能够实时更新视图。但是,也存在一些问题。 1. 计算是正确的,但只在前 60 秒后计算。所以在外观上,金额标签显示为空。并且视图仍然没有更新。 2.明天不继续计算,所以如果今天你的总增长显示10,200.12,那么当你明天再次打开应用程序时,它会重新开始计数,而不是从开始的地方开始。
解决方法
尝试使用 Device.StartTimer() 定期增加计数
https://docs.microsoft.com/en-us/dotnet/api/xamarin.forms.device.starttimer?view=xamarin-forms
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。