我正在用C#编写一个DLL,我需要(不想要)限制DLL在特定时间内的使用。
我希望它在使用开始N小时后停止工作,同时通知用户。 如果DLL没有使用M小时,也停止使用(作为一种保持活着)。
用法正在调用DLL的一个函数。
使用异常总是与DLL的可用性相冲突(我无法阻止它)。
我非常感谢我能得到的任何帮助,我对使用C#的经验不是很充实。
任何语言的任何解决方案都会很棒,显然我在Windows计算机上运行,但如果需要进行任何修改,可以轻松修改其组件(服务包等)。
非常感谢您的帮助,谢谢。
修改
我想我不清楚。 我需要的是通知用户DLL中函数的使用结束,因此如果他愿意,他可以再次初始化这些函数。 DLL未卸载。 而且我不想干涉主程序进程,即使用DLL函数的进程。
答案 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");