Hi All,

I just tried to run a simple VB.NET 1.1 winform on Mono 1.1.14Build1 and got the following crash (see below).

The reason for this simple test was to see if Mono leaked memory like MS .NET 1.1.

If you run this on Windows, click the button over and over and over again..

And watch memory. It grows in memory... The test was to see if Mono did the same, but it crashed before I could check.

So a couple of questions..

1) Why is it crashing on Mono
2) Is this a Memory Leak ? or Incorrect coding for Simple Threading ?

Thanks
Andrew


==================================================== ================
Mono version 1.1.14 Build 1
Prepending 'C:\PROGRA~1\MONO-1~1.14\bin' to PATH
C:\Documents and Settings\andrew>
E:\>mono -v MemoryLeak.exe
Method (wrapper runtime-invoke) System.Object:runtime_invoke_void_string (object,intptr,intptr,intptr) emitted at 00FE1380 to 00FE1417 (code length 151) [MemoryLeak.exe]
Method System.OutOfMemoryException:.ctor (string) emitted at 00FE1418 to 00FE143B (code length 35) [MemoryLeak.exe]
Method System.SystemException:.ctor (string) emitted at 00FE1460 to 00FE1483 (code length 35) [MemoryLeak.exe]
Method System.Exception:.ctor (string) emitted at 00FE1498 to 00FE14B0 (code length 24) [MemoryLeak.exe]
Method System.Exception:set_HResult (int) emitted at 00FE14B8 to 00FE14C6 (codelength 14) [MemoryLeak.exe]
Method System.NullReferenceException:.ctor (string) emitted at 00FE14C8 to 00FE14EB (code length 35) [MemoryLeak.exe]
Method System.StackOverflowException:.ctor (string) emitted at 00FE14F0 to 00FE1503 (code length 19) [MemoryLeak.exe]

===================================================================
CODE
===================================================================

Imports System.Threading

Public Class Form1
    Inherits System.Windows.Forms.Form

#Region " Windows Form Designer generated code "

    Public Sub New()
        MyBase.New()

         'This call is required by the Windows Form Designer.
         InitializeComponent()

        'Add any initialization after the InitializeComponent() call

    End Sub

    'Form overrides dispose to clean up the component list.
    Protected Overloads Overrides Sub Dispose(ByVal disposing As Boolean)
         If disposing Then
             If Not (components Is Nothing) Then
                 components.Dispose()
             End If
        End If
        MyBase.Dispose(disposing)
    End Sub

    'Required by the Windows Form Designer
    Private components As System.ComponentModel.IContainer

    'NOTE: The following procedure is required by the Windows Form Designer
    'It can be modified using the Windows Form Designer. 
    'Do not modify it using the code editor.
    Friend WithEvents Button1 As System.Windows.Forms.Button
    <System.Diagnostics.DebuggerStepThrough()> Private Sub InitializeComponent()
        Me.Button1 = New System.Windows.Forms.Button
        Me.SuspendLayout()
        '
        'Button1
        '
         Me.Button1.Location = New System.Drawing.Point(120, 88)
         Me.Button1.Name = "Button1"
        Me.Button1.TabIndex = 0
        Me.Button1.Text = "Button1"
        '
        'Form1
        '
        Me.AutoScaleBaseSize = New System.Drawing.Size(5, 13)
         Me.ClientSize = New System.Drawing.Size(292, 273)
         Me.Controls.Add(Me.Button1)
        Me.Name = "Form1"
        Me.Text = "Form1"
         Me.ResumeLayout(False)

    End Sub

#End Region

    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        Dim newThread As Thread

        newThread = New Thread(AddressOf newThreadFunction)
        newThread.IsBackground = True
        newThread.Start()
    End Sub

    Public Sub newThreadFunction()
        'do nothing
    End Sub

End Class

================================== =================================


_______________________________________________
Mono-list maillist  -  Mono-list@lists.ximian.com
http://lists.ximian.com/mailman/listinfo/mono-list

Reply via email to