【问题标题】:Get Http Request with pause between every result from the lit获取 Http 请求,并在 lit 的每个结果之间暂停
【发布时间】:2020-12-17 22:49:12
【问题描述】:

我想构建一个简单的 API,它只使用控制器显示一些数据。控制器使用 genfu 显示一些虚拟数据,目前它被一次全部检索到,我需要做的是在一定时间后显示每条记录,比如,我第一次运行应用程序时我想要 0 个结果,而不是,例如一秒后,下一秒等等,这就是我目前在控制器中所拥有的,它真的很基本

// GET: api/<controller>
        [HttpGet]
        public IEnumerable<Contact> Get()
        {

         
            var data = _contactsGeneratorService.Collection(100);
            

            return data;
        }

我尝试使用 thread.sleep 选项,但在这种情况下不起作用。抱歉,我真的很陌生。

【问题讨论】:

  • 我相信 API 不是正确的选择,你可以考虑 SignalR,请检查这个stackoverflow.com/questions/20230561/…
  • 真的不清楚您想要实现什么以及您希望在服务器端(控制器运行的位置)与客户端看到什么行为。对我来说,这听起来像是您想模拟将数据增量加载到 UI(为此您可能应该考虑分页来自服务器的响应,可能在每个呼叫服务器端使用 Task.Delay 来降低速度),但基于当前答案这远不是对问题的唯一解释。
  • 从你的描述来看,你想把记录一一显示。如果您正在创建计时器并在服务器端(在 API 控制器中)加载记录,之后您需要将每个结果发送到客户端并更新内容,在这种情况下,您可以考虑使用 SignalR,它可以用来实现实时更新。另外,你也可以尝试创建一个JQuery Timer,每隔一秒调用一次API方法,在Ajax成功函数中动态在html页面中添加一条记录。

标签: c# api asp.net-core time get


【解决方案1】:

查看 C# 计时器控件/类。以下是来自Microsoft's documentation 的示例:

using System;
using System.Timers;

public class Example
{
   private static System.Timers.Timer aTimer;

   public static void Main()
   {
      SetTimer();

      Console.WriteLine("\nPress the Enter key to exit the application...\n");
      Console.WriteLine("The application started at {0:HH:mm:ss.fff}", DateTime.Now);
      Console.ReadLine();
      aTimer.Stop();
      aTimer.Dispose();
  
      Console.WriteLine("Terminating the application...");
   }

   private static void SetTimer()
   {
        // Create a timer with a two second interval.
        aTimer = new System.Timers.Timer(2000);
        // Hook up the Elapsed event for the timer. 
        aTimer.Elapsed += OnTimedEvent;
        aTimer.AutoReset = true;
        aTimer.Enabled = true;
    }

    private static void OnTimedEvent(Object source, ElapsedEventArgs e)
    {
        Console.WriteLine("The Elapsed event was raised at {0:HH:mm:ss.fff}",
                          e.SignalTime);
    }
}

更多例子请看这篇文章:http://csharp.net-informations.com/gui/timer-cs.htm

【讨论】:

    猜你喜欢
    • 2015-05-30
    • 1970-01-01
    • 1970-01-01
    • 2019-02-13
    • 1970-01-01
    • 2016-10-14
    • 1970-01-01
    • 2017-03-21
    • 1970-01-01
    相关资源
    最近更新 更多