假设我们有一个调用远程数据库的方法,大约需要1秒钟才能完成,并返回一个
这个方法返回的 DataTable 用于填充一个包含单条线系列的 Chart。为什么这段代码能显示正确、格式化良好的 DateTime X 轴标签:
请注意,即使使用第二个版本,删除
DataTable
(下面是模拟):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;
}
这个方法返回的 DataTable 用于填充一个包含单条线系列的 Chart。为什么这段代码能显示正确、格式化良好的 DateTime 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()
调用也可以解决此问题。