我想不出一種方式來做這樣的事情:我有一個C#應用程序與使用串行端口的另一個設備進行連接,並且此設備有時可能會有中斷,從而阻止自身的執行,但一旦它被修復,操作會一直持續到完成。在執行阻塞方法時返回數據
例如,考慮一臺打印機,一個100頁的作業開始在打印機上打印,但打印機內部有70張紙,因此打印機打印70頁,然後通過PC警告用戶將更多紙張放入托盤。用戶在其中放入紙張後,繼續打印,並在打印輸出結束後,打印機將結果發送至PC。
多數民衆贊成的情況,但比打印機發生得更快。我怎樣才能編碼這樣的東西?例如:
private void StartPrinting()
{
boolean bIsPrinted = SendPrinterDocument("p100.pdf");
}
private void ShowPaperOutError()
{
MessageBox.Show("Paper is out. Please load some papers");
}
如果你只有這SendPrinterDocument()
方法,並應用它會阻止執行,就像是一個DLL庫,你會如何觸發ShowPaperOutError()
消息?僅供參考,我可以訪問所有代碼,PC軟件(C#),DLL(C#)和設備(C),並且可以編譯它們。
你的'ShowPaperOutError'是如何調用的?通過一個事件? –
尚未調用:)我試圖在保持活動狀態的同時找到合理的方式來調用它。 –