Please do not reply to this email- if you want to comment on the bug, go to the URL shown below and enter your comments there.
Changed by [EMAIL PROTECTED] http://bugzilla.ximian.com/show_bug.cgi?id=76326 --- shadow/76326 2005-10-05 15:16:57.000000000 -0400 +++ shadow/76326.tmp.4835 2005-10-05 15:39:10.000000000 -0400 @@ -233,6 +233,201 @@ ------- Additional Comments From [EMAIL PROTECTED] 2005-10-05 15:16 ------- I thought about that so I commented out the line that does: this.listBox1.Items.Add("test"); and the problem still ocurred, however it seemed to happen less often, I don't know if that helps. Thanks for the links though. + +------- Additional Comments From [EMAIL PROTECTED] 2005-10-05 15:39 ------- +Ok I changed the example to use Invoke, and it works on Windows. On +Linux I still get the exception I was getting before but just like +before every so often it actually runs, at which point I get a +different exception, should I submit that as a different bug? Its +probably related to my method taking two params and me not passing any +but on Windows it doesnt throw an exception. + +I am copying the new exception followed by the code. +================================= +mono Test.exe +Mono System.Windows.Forms Assembly [Revision: 49925; built: 2005/9/11 +14:27:24] +Keyboard: United States keyboard layout (phantom key version) +Creating caret +Destroying caret +Creating caret + +Unhandled Exception: System.Reflection.TargetParameterCountException: +Number of parameter does not match expected count. +in <0x00064> System.Reflection.Binder:ConvertArgs +(System.Reflection.Binder binder, System.Object[] args, +System.Reflection.ParameterInfo[] pinfo, +System.Globalization.CultureInfo culture) +in <0x00084> System.Reflection.MonoMethod:Invoke (System.Object obj, +BindingFlags invokeAttr, System.Reflection.Binder binder, +System.Object[] parameters, System.Globalization.CultureInfo culture) +in <0x00034> System.Reflection.MethodBase:Invoke (System.Object obj, +System.Object[] parameters) +in <0x000d9> System.Delegate:DynamicInvokeImpl (System.Object[] args) +in <0x00031> System.MulticastDelegate:DynamicInvokeImpl +(System.Object[] args) +in <0x00020> System.Delegate:DynamicInvoke (System.Object[] args) +in <0x00100> +System.Windows.Forms.XplatUIDriverSupport:ExecuteClientMessage +(GCHandle gchandle) +in <0x011b6> System.Windows.Forms.XplatUIX11:GetMessage +(System.Windows.Forms.MSG msg, IntPtr handle, Int32 wFilterMin, Int32 +wFilterMax) +in <0x00040> System.Windows.Forms.XplatUI:GetMessage +(System.Windows.Forms.MSG msg, IntPtr hWnd, Int32 wFilterMin, Int32 +wFilterMax) +in <0x0032e> System.Windows.Forms.Application:Run () +in <0x000e7> System.Windows.Forms.Application:Run +(System.Windows.Forms.ApplicationContext context) +in <0x00036> System.Windows.Forms.Application:Run +(System.Windows.Forms.Form mainForm) +in <0x0009b> Test.Form1:Main () +==================================================== + +Here is the code: + +using System; +using System.Drawing; +using System.Collections; +using System.ComponentModel; +using System.Windows.Forms; +using System.Data; + +namespace Test +{ + /// <summary> + /// Summary description for Form1. + /// </summary> + public class Form1 : System.Windows.Forms.Form + { + private System.Windows.Forms.TextBox textBox1; + private System.Windows.Forms.ListBox listBox1; + private System.Windows.Forms.Button button1; + /// <summary> + /// Required designer variable. + /// </summary> + private System.ComponentModel.Container components = null; + + public Form1() + { + // + // Required for Windows Form Designer support + // + InitializeComponent(); + + // + // TODO: Add any constructor code after InitializeComponent call + // + } + + /// <summary> + /// Clean up any resources being used. + /// </summary> + protected override void Dispose( bool disposing ) + { + if( disposing ) + { + if (components != null) + { + components.Dispose(); + } + } + base.Dispose( disposing ); + } + + #region Windows Form Designer generated code + /// <summary> + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// </summary> + private void InitializeComponent() + { + this.textBox1 = new System.Windows.Forms.TextBox(); + this.listBox1 = new System.Windows.Forms.ListBox(); + this.button1 = new System.Windows.Forms.Button(); + this.SuspendLayout(); + // + // textBox1 + // + this.textBox1.Location = new System.Drawing.Point(40, 40); + this.textBox1.Name = "textBox1"; + this.textBox1.Size = new System.Drawing.Size(88, 20); + this.textBox1.TabIndex = 0; + this.textBox1.Text = "textBox1"; + // + // listBox1 + // + this.listBox1.Location = new System.Drawing.Point(32, 88); + this.listBox1.Name = "listBox1"; + this.listBox1.Size = new System.Drawing.Size(88, 95); + this.listBox1.TabIndex = 1; + // + // button1 + // + this.button1.Location = new System.Drawing.Point(184, 176); + this.button1.Name = "button1"; + this.button1.Size = new System.Drawing.Size(88, 64); + this.button1.TabIndex = 2; + this.button1.Text = "button1"; + // + // Form1 + // + this.AutoScaleBaseSize = new System.Drawing.Size(5, 13); + this.ClientSize = new System.Drawing.Size(292, 273); + this.Controls.Add(this.button1); + this.Controls.Add(this.listBox1); + this.Controls.Add(this.textBox1); + this.Name = "Form1"; + this.Text = "Form1"; + this.Load += new System.EventHandler(this.Form1_Load); + this.ResumeLayout(false); + + } + #endregion + + /// <summary> + /// The main entry point for the application. + /// </summary> + [STAThread] + static void Main() + { + Form1 f = new Form1(); + System.Threading.Thread thread = new System.Threading.Thread(new +System.Threading.ThreadStart(f.Start)); + thread.IsBackground = true; + thread.Start(); + Application.Run(f); + } + + private void Form1_Load(object sender, System.EventArgs e) + { + + } + private void Start() + { + while(true) + { + // this.listBox1.Items.Add("test"); + try + { + System.Threading.Thread.Sleep(10000); + this.listBox1.Invoke(new EventHandler(Test)); + + } + catch(Exception ex) + { + Console.WriteLine(ex); + } + + } + } + private void Test(Object sender, System.EventArgs ev) + { + this.listBox1.Items.Add("test"); + } + } +} + _______________________________________________ mono-bugs maillist - [email protected] http://lists.ximian.com/mailman/listinfo/mono-bugs
