2012-01-27 134 views
0

我試圖按照從MSDN這個例子:http://msdn.microsoft.com/en-us/library/a1hetckb.aspx參數數量不匹配

我覺得我做他們所做的一切,但我不斷收到此錯誤:參數數量不匹配

這裏是我的代碼:

Form1中:

namespace ETL 
{ 
    public partial class Form1 : Form 
    { 
     private Thread myThread; 
     public delegate void delegatePrintoutProcess(string myString); 
     public delegatePrintoutProcess myDelegate2; 
    ... 

    private void startParseToolStripMenuItem_Click(object sender, EventArgs e) 
    { 
     myDelegate2 = new delegatePrintoutProcess(updatePrintoutMethod); 
     myThread = new Thread(new ThreadStart(ThreadFunction)); 
     myThread.Start(); 
    } 
    public void updatePrintoutMethod(string text) 
    { 

     // this.richTextBox1.Text = text; 
    } 
    private void ThreadFunction() 
    { 
     parseFile myThreadClassObject = new parseFile(this); 
     myThreadClassObject.getFilePath = filePath; 
     myThreadClassObject.Run(); 


    } 
} 

parseFile類:

namespace ETL 
{ 
    public class parseFile 
    { 
     Form1 myFormControl1; 
    public parseFile(Form1 myForm) 
    { 
     //get a handle on the main form 
     myFormControl1 = myForm; 
    } 
    String myString; 
    public void Run() 
    { 

     for (int i = 1; i <= 5; i++) 
     { 
      myString = "Step number " + i.ToString() + " executed"; 
      Thread.Sleep(400); 
      // Execute the specified delegate on the thread that owns 
      // 'myFormControl1' control's underlying window handle with 
      // the specified list of arguments. 
      myFormControl1.Invoke(myFormControl1.myDelegate, 
            new Object[] { myString }); //error here 
     } 
    } 
    } 

我很確定我跟着提供的例子,所以不知道是怎麼回事。

感謝 傑森

+0

可能是您的委託方法中缺少參數。看它。 – 2012-01-27 03:26:07

回答

2

猜想(因爲沒有代碼證明) - 的myDelegate類型是「0或2個參數的函數」,不像myDelegate2,你可能想打電話。

+0

感謝您的回覆。 「無代碼證明」是什麼意思? – jason 2012-01-27 03:15:42

+0

等一下,我知道你的意思。謝謝,生病看看是否它 – jason 2012-01-27 03:17:19

+0

謝謝,我完全錯過了錯字! – jason 2012-01-27 03:23:30