这更多是出于个人好奇/兴趣,而不是我要解决的具体问题。
假设您有一个程序,它正在对用户提供的信息(例如搜索字符串)执行某些操作,并且随着用户输入而发生变化。假设您想在任何给定时间向用户显示与他们键入的内容最相关的信息。
如果线程确实可以中止,我们可以仅运行一个基于最后更改的搜索字符串的线程,并取消任何先前正在进行的线程。
现在,今天通常接受的最佳实践是使用延迟计时器作为用户键入的操作之前等待0.5到1秒钟的时间。从理论上讲,我希望这足够明显了(任何形式的人工延迟都会施加人工瓶颈,即使只有0.5秒,也永远无法克服)。
此外,今天的最佳实践还指出,任何后续操作都应在执行之前等待前一个操作完成。在我们无法中止操作的情况下,这是有道理的,但从理论上讲,这远非理想。想象一下,用户键入一个字符并暂停足以开始操作。假设此操作需要10秒钟才能执行。现在,用户必须等待不可接受的时间,才能看到他/她的查询结果。
这种情况下(并不理想),解决方法是同时执行多个操作,假设可以安全地这样做,但这仍然会导致性能显著降低。
因此,我只是想知道人们对此的看法,至少是针对.NET,并且是否有任何新的发展在这个领域,自从我上次研究它以来,我应该知道(例如并行库)?我也很想知道是否有任何其他语言/框架可以比.NET更好地处理这种精细的操作控制。
干杯。