每10毫秒记录一次数据

时间:2016-12-26 11:17:55

标签: c# multithreading timer async-await threadpool

我正在开发一个.net应用程序,我必须在其中记录数据并执行计算,同时还要在数据库中添加条目。这个完整的过程应该是每10毫秒的时间跨度。这是c#中的实时数据分析。

为了实现这一点,我做了很多研究,包括线程,异步/等待和线程池,但仍然无法获得所需的输出。基本上我想每10毫秒记录一次数据并将其存储在数据库中。下面是我正在处理的代码示例。

private void Form1_Load(object sender, EventArgs e)
        {
            timer1.Start();
        }
        async void InsertData()
        {
            timer1.Stop();
            int i = await Insert(DateTime.UtcNow.ToString("yyyy-MM-dd HH:mm:ss.fff", CultureInfo.InvariantCulture));
            timer1.Start();
        }

        async Task<int> Insert(string value)
        {
            ThreadApp objThread = new ThreadApp();
            objThread.value1 = value.ToString();
            db.ThreadApps.Add(objThread);
            db.SaveChanges();
            int i = 1;
            return i;
        }
        private void timer1_Tick(object sender, EventArgs e)
        {
            InsertData();
        }

期望的输出:

enter image description here

请有人建议我如何达到这个要求。

0 个答案:

没有答案