??委托和Application有是什么关系??我有些晕头了public Func<int,int> myfunc ;这就是一个委托,那么这个委托和Application有什么必要的联系,我还真不知道
解决方案 »
- 求一个简单的C#链接数据库的例子
- 帮忙提供一个灵活配置的例子,和加密的例子,万分感谢.
- 这个网站能不能搞一个差不多一样的? 时间?价格? http://yungching.com.tw/
- 如何实现用OpenFileDialog获取的路径显示到旁边的TextBox中显示FileName
- 关于页面闪烁的问题
- 三个基础级问题
- zedgraph控件的使用问题,求大神解答
- decimal的问题,高手指教一下!!
- 一个关于删除的问题,大家帮忙看看
- 请问怎样获取当前打开的DataSet?
- 问题标签用户 c#接收多个Byte数组,组成Byte数组,转成图片,中间出现丢失字节,如何保证图片完整性
- dev中的gridControl分组排序的问题
就可以有:
System.Windows.Forms.Application
即使本程序直接打印,也不用非要监视打印完成啊,只要把命令发到打印机,打印机到底有没有打印,程序都应该能够继续执行,而不是卡死.
打印机有问题,没有打印出来,用户自己去调整一下,重新打印就好啦
如果我用word打印,没有打印出来,我连关闭文档都关闭不了?
A负责打印,也就是向打印机发送打印请求
B负责向A发送打印请求那么A只需要负责打印请求是否发送完成,没完成就关闭了,打印机肯定是无法获取全部要打印的页面的
至于A发完了,打印机到底有没有打完,那不关A的事.B向A发指令也是一样,没发完提示用户不要关闭程序,否则会不完整.
至于A接收到指令之后是否向打印机发送指令了,这不关B的事啊!
估计你理解的委托就是事件吧?可能你接触的都是事件驱动的吧。
谢谢你的回复,问题是这样的:B向A发送打印指令并等待A打印完成(PDF),然后B再将A的打印结果放入数据库,如果不知道A何时打印完成,就没有办法进行。
单获的EXE中,将打印机的打印完成(READY)事件进行了委托,可以实现,但将其编译成DLL时,委托不起作用?不知道为什么?
然后你什么都没做,只是把这个exe编译成dll对吧额,这样做当然不会调用,请把打印模块独立封装成class,并在构造函数里去定义委托指定
using System.Collections.Generic;
using System.Text;
using System.Runtime.InteropServices;
//using System.Timers.Timer;
using System.Threading;
using System.Windows.Forms;namespace DoctoPDF
{ public interface IDoctoPDF
{
string filenametoPDF(string filename, string directory);
}
[ClassInterface(ClassInterfaceType.None)]
public class DoctoPDF : IDoctoPDF
{
private PDFCreator.clsPDFCreator _PDFCreator;
private PDFCreator.clsPDFCreatorError pErr; private bool ReadyState; public string filenametoPDF(string filename, string directory)
{
string parameters;
pErr = new PDFCreator.clsPDFCreatorError();
_PDFCreator = new PDFCreator.clsPDFCreator();
_PDFCreator.eError += new PDFCreator.__clsPDFCreator_eErrorEventHandler(_PDFCreator_eError);
_PDFCreator.eReady += new PDFCreator.__clsPDFCreator_eReadyEventHandler(_PDFCreator_eReady);
.........
_PDFCreator.cPrintFile(filename);
ReadyState = false;
while (!ReadyState)
{
Thread.Sleep(1000);
}
_PDFCreator.cPrinterStop = true;
_PDFCreator.cDefaultPrinter = DefaultPrinter;
return "true";
}
private void _PDFCreator_eReady()
{
_PDFCreator.cPrinterStop = true;
ReadyState = true;
}
}