0
我是初學者! 我做了第三方DLL(DLL_B)的包裝DLL(DLL_A)。 下面你可以找到一個simplyfied例如:如何管理他的封裝器DLL中的第三方DLL事件
的DLL_B分類class_b暴露(我只能查看從元數據簽名):
public delegate void eveHandler(bool ret_B);
public class cls_B
{
public cls_B(string init);
public event eveHandler eve;
public void req(eveHandler reqHandler = null);
}
內DLL_A:
public class cls_A
{
private cls_B objClsB;
private bool continueWorking = true;
public cls_A()
{
objClsB = new cls_B("test");
objClsB.ev += new eveHandler(this.eveManager);
}
public eveManager(bool ret_A)
{
continueWorking = false;
}
public request()
{
objClsB.req();
int i = 0;
While (continueWorking && i < 100)
{
//Do a lot of stuff...
i++;
}
}
}
然後,主內應用程序:
cls_A objClsA = new cls_A();
objClsA.request();
MessageBox.Show("Done!", "MyApp");
它的工作,但似乎eveManager()
僅在執行MessageBox.Show("Done!", "MyApp");
之前從objClsA.request();
退出時才被調用。 事實上,如果我刪除&& i < 100
部分它將卡在while循環中,但我需要該事件停止循環。
我在哪裏錯了?
提前致謝!
您所描述的行爲反映你已經發布的代碼。目前還不清楚你想要發生什麼。 – 2014-12-02 14:31:27
嗨!當Cls_B發生一個事件時,我需要這個事件,它從這個時候退出。謝謝 – Mark 2014-12-02 14:35:06
如果刪除&& i <100',會發生什麼? – thepirat000 2014-12-02 14:36:31