Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/317.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 基于时间跨度的对象超时实现_C#_.net - Fatal编程技术网

C# 基于时间跨度的对象超时实现

C# 基于时间跨度的对象超时实现,c#,.net,C#,.net,大家好,我需要实现一种方法来超时我的对象,而不使用基于特定时间跨度和最后一个事务日期的计时器类。有人能指出这种类型的良好实现或示例吗?顺便说一下,这不是一个web应用程序,而是一个控制台应用程序 编辑1: 对不起,我忘了告诉你们我的一些实际情况。我有不同的线程,它们生成的对象如果在x个时间量之后没有事件,则需要超时。我已经有了一个使用计时器的工作逻辑,但我希望它更有效,并且不使用线程池中的线程(因为我使用的是计时器,那么WaitCallBack上的对象将由我的应用程序域线程池中的空闲线程处理)。

大家好,我需要实现一种方法来超时我的对象,而不使用基于特定时间跨度和最后一个事务日期的计时器类。有人能指出这种类型的良好实现或示例吗?顺便说一下,这不是一个web应用程序,而是一个控制台应用程序

编辑1:


对不起,我忘了告诉你们我的一些实际情况。我有不同的线程,它们生成的对象如果在x个时间量之后没有事件,则需要超时。我已经有了一个使用计时器的工作逻辑,但我希望它更有效,并且不使用线程池中的线程(因为我使用的是计时器,那么WaitCallBack上的对象将由我的应用程序域线程池中的空闲线程处理)。我在想,我是否可以只用一个线程来完成这个任务,但我不知道如何实现它。希望有人能帮我,谢谢

如果没有某种计时器,我想不出一种方法来做这件事


您可以从
日期时间中减去最后一个事务日期。现在
-将生成的时间跨度与您的特定时间跨度一起使用,以获得初始化计时器所需的毫秒数。

我感觉缓存对象可能能够帮到您-即使它不是web应用,您仍然可以通过添加对System.Web的引用来使用它,或者如果您在.NET 4中,他们已经在System.Runtime.Caching中添加了它。

您能否详细说明需要超时的内容,是否存在需要超时的对象,对象上的某个方法,您希望在超时后取消执行?尽管原始海报上确实说“不使用计时器类”。