假设我们有访问远程数据库中的一个方法调用,以大约1秒,完成并返回一个DataTable
(模拟下面):C#图表轴标签未格式化正确
DataTable GetData()
{
Thread.Sleep(1000); // simulated delay
var dt = new DataTable("DataTable");
dt.Columns.Add("DateTime", typeof(DateTime));
dt.Columns.Add("Value", typeof(double));
var rand = new Random();
var date = new DateTime(2016, 1, 1);
for (int i = 0; i < 1000; i++)
{
dt.Rows.Add(date, rand.NextDouble() * 100);
date = date.AddHours(12);
}
return dt;
}
的数据表从该方法返回用于用单行系列填充Chart
。为什么这个代码显示正确,正确格式的日期时间x轴标签:
async void MainForm_Load(object sender, EventArgs e)
{
var data = GetData();
chart.DataSource = data;
chart.DataBind();
}
和验证码显示不正确,未格式化的X轴标签?
async void MainForm_Load(object sender, EventArgs e)
{
var data = await Task.Run(() => GetData());
chart.DataSource = data;
chart.DataBind();
}
注意去除Thread.Sleep()
调用也修正了这个问题,即使使用第二个版本。