??委托和Application有是什么关系??我有些晕头了public Func<int,int> myfunc ;这就是一个委托,那么这个委托和Application有什么必要的联系,我还真不知道

解决方案 »

  1.   

    不需要有窗体。引用System.Windows.Forms.dll
    就可以有:
    System.Windows.Forms.Application
      

  2.   

    程序(EXE)中调用了另一个程序并有打印任务,对打印完成事件进行了委托,在EXE中运行正常,即打印完成后程序继续执行,编译成DLL后另一个程序运行了,打印任务正常,可程序不继续执行,一直在等待打印完成事件发生,打印机中已没有要等待打印的文件,是不是委托出了问题?
      

  3.   

    不明白这样设计的目的是什么.
    即使本程序直接打印,也不用非要监视打印完成啊,只要把命令发到打印机,打印机到底有没有打印,程序都应该能够继续执行,而不是卡死.
    打印机有问题,没有打印出来,用户自己去调整一下,重新打印就好啦
    如果我用word打印,没有打印出来,我连关闭文档都关闭不了?
      

  4.   

    如果我有2个程序A和B
    A负责打印,也就是向打印机发送打印请求
    B负责向A发送打印请求那么A只需要负责打印请求是否发送完成,没完成就关闭了,打印机肯定是无法获取全部要打印的页面的
    至于A发完了,打印机到底有没有打完,那不关A的事.B向A发指令也是一样,没发完提示用户不要关闭程序,否则会不完整.
    至于A接收到指令之后是否向打印机发送指令了,这不关B的事啊!
      

  5.   

    委托和窗体,application没什么关系,不停概念。
    估计你理解的委托就是事件吧?可能你接触的都是事件驱动的吧。
      

  6.   


    谢谢你的回复,问题是这样的:B向A发送打印指令并等待A打印完成(PDF),然后B再将A的打印结果放入数据库,如果不知道A何时打印完成,就没有办法进行。
    单获的EXE中,将打印机的打印完成(READY)事件进行了委托,可以实现,但将其编译成DLL时,委托不起作用?不知道为什么?
      

  7.   

    这的看你在哪里写的东西了,如果你是在program.cs里面写地,那么恭喜你,他的确不会调用
      

  8.   

    我大概明白你的困惑了,你原本是exe,原本在program.cs或者exe第一个UI初始化地时候给了委托定义
    然后你什么都没做,只是把这个exe编译成dll对吧额,这样做当然不会调用,请把打印模块独立封装成class,并在构造函数里去定义委托指定
      

  9.   

    using System;
    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;
            }
    }
      

  10.   

    delegate void dempDelegate(string strMsg);
      

  11.   

    你这个问题问的莫名其妙,你想委托实现,肯定是要实现某个功能方法.c# 2.0 delegate, c#3.0 Func<>,Action<>,predicate<>