设置DLL使用的超时

时间:2013-08-20 06:53:47

标签: c# windows exception dll timeout

我正在用C#编写一个DLL,我需要(不想要)限制DLL在特定时间内的使用。

我希望它在使用开始N小时后停止工作,同时通知用户。 如果DLL没有使用M小时,也停止使用(作为一种保持活着)。

用法正在调用DLL的一个函数。

使用异常总是与DLL的可用性相冲突(我无法阻止它)。

我非常感谢我能得到的任何帮助,我对使用C#的经验不是很充实。

任何语言的任何解决方案都会很棒,显然我在Windows计算机上运行,​​但如果需要进行任何修改,可以轻松修改其组件(服务包等)。

非常感谢您的帮助,谢谢。

修改

我想我不清楚。 我需要的是通知用户DLL中函数的使用结束,因此如果他愿意,他可以再次初始化这些函数。 DLL未卸载。 而且我不想干涉主程序进程,即使用DLL函数的进程。

1 个答案:

答案 0 :(得分:1)

使用计时器:

System.Threading.Timer t = new System.Threading.Timer(End, null, N * 60 * 1000, Timeout.Infinite);

  private static void End(object state)
  {
     // Tell the user and end the program
  }

未使用使用另一个计时器:

System.Threading.Timer t2 = new System.Threading.Timer(End, null, M * 60 * 1000, Timeout.Infinite);

现在我不知道“使用”对你意味着什么,但在任何被认为是“使用”的功能中都有:

 t2.Change(M * 60 * 1000, Timeout.Infinite);

结束你可以使用的程序:

Environment.Exit(0);

请记住,如果你有一个以上的线程,你可能会得到一个僵尸,所以要确保除主线程之外的所有其他线程都是背景,或者你中止它们或单个它们关闭。

现在我明白你只想通知用户...... 所以我建议使用:

MessageBox.Show(this, "what message you want to give the user");