2

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

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

用法是调用 DLL 的函数之一。

使用异常总是与 DLL 的可用性发生冲突(我不能让它处于阻塞状态)。

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

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

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

编辑

我想我不清楚。我需要通知用户 DLL 中函数的使用结束,以便他可以根据需要再次初始化这些函数。DLL 未卸载。而且我不想干扰使用 DLL 函数的主程序进程。

4

1 回答 1

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");
于 2013-08-20T06:57:20.357 回答