我编写了一个C#实用程序类(DLL),它由Windows应用程序调用。在Windows应用程序中,我已经设置了一个后台工作器,以允许耗时的代码不占用Windows应用程序。耗时的代码位于实用程序类DLL中。现在,我在Windows应用程序上设置了两个按钮'提交'按钮 - 在实用程序类中调用耗时的代码并取消'按钮。
我想取消'取消'单击按钮以停止backgroundWorker代码。问题是“取消”'按钮位于Windows应用程序中,代码位于DLL中。那么有没有办法可以附上“取消”#39;按钮' onClick' eventHandler到DLL然后定期检查DLL是否按下了按钮?
顺便说一句,取消按钮一直有效,直到启动DLL代码。
我的想法是否正确还是有更好的方法?任何帮助,将不胜感激。
答案 0 :(得分:0)
是的,可以注册项目之间的事件。你所要做的就是在你的dll中引用winforms应用程序,并公开取消按钮。然后你可以注册到dll代码中的任何事件。 然而,我不确定这是做你想做的最好的方法。我认为更好的方法是在dll中有一个名为Cancel的方法,并让取消按钮单击事件调用此函数。这样你的dll就不那么依赖你的winforms应用程序了。
答案 1 :(得分:0)
我实际上回过头来看了一些关于事件和事件处理的文档。我在DLL中执行了以下操作:
在客户端应用中,我执行了以下操作:
现在按预期工作!