sw.Start();
System.Net.FileWebResponse res = (FileWebResponse)req.GetResponse();
sw.Stop();
TimeSpan timeToLoad = sw.Elapsed;
TextBox2.Text = timeToLoad.ToString().Trim();
var a=1.1;
a = Convert.ToDouble(TextBox2.Text); //This is where the error is thrown
var threshold=5;
if (a > threshold)
{
Console.WriteLine("Scale up server");
}
else
{
Console.WriteLine("Scale down web server");
}
答案 0 :(得分:1)
如错误所示,您似乎在文本框中输入了无效字符串。例如,输入" foo"在文本框中,由于您正在执行Convert.ToDouble("foo")
,因此会导致异常。
使用.TryParse
var a = 1.1;
if (Double.TryParse(TextBox2.Text, out a)) {
var threshold = 5;
if (a > threshold) {
Console.WriteLine("Scale up server");
} else {
Console.WriteLine("Scale down web server");
}
}
说明:Double.TryParse()检查字符串值是否可转换为Double
并返回bool。它还会在out
参数中写入值供我们使用。
答案 1 :(得分:0)
问题是Convert.ToDouble(TextBox2.Text)部分
var a=1.1;
Double.TryParse(TextBox2.Text, out a)
答案 2 :(得分:0)
您似乎想要比较Ticks逝去而不是整个TimeSpan,下面的代码片段可以帮助您避免错误输出
Stopwatch sw = new Stopwatch();
TimeSpan t = sw.Elapsed;
double v =0;
Double.TryParse(t, out v);
如果您想要刻度线或其他属性,您也可以使用TimeSpan上的属性
Stopwatch sw = new Stopwatch();
TimeSpan t = sw.Elapsed;
double v =0;
Double.TryParse(t.Ticks, v);