Ok, there has been a number of complaints about programs written in the .NET Framework using lots of memory. Here is a way to reduce it using P-Invoke.

You need to import the function SetProcessWorkingSetSize.

VB Code:
  1. <DllImport("kernel32.dll")> _
  2. Public Shared Function SetProcessWorkingSetSize(ByVal handle As IntPtr, _
  3.         ByVal min As Int32, _
  4.         ByVal max As Int32) _
  5.         As Boolean
  6. End Function
Now call the function. You can place this in the constructor.
VB Code:
  1. Dim proc As Process = Process.GetCurrentProcess()
  2. Me.SetProcessWorkingSetSize(proc.Handle, -1, -1)

C# Version
Code:
[DllImport("kernel32.dll")]
public static extern bool SetProcessWorkingSetSize(System.IntPtr handle, int min, int max);
Code:
Process proc = Process.GetCurrentProcess();
SetProcessWorkingSetSize(proc.Handle, -1, -1);
Also, make sure you have a reference to System.Diagnostics and System.Runtime.InteropServices.