Index: /trunk/sources/HeuristicLab.MainForm.WindowsForms/3.2/ControlExtensions.cs
===================================================================
--- /trunk/sources/HeuristicLab.MainForm.WindowsForms/3.2/ControlExtensions.cs	(revision 3397)
+++ /trunk/sources/HeuristicLab.MainForm.WindowsForms/3.2/ControlExtensions.cs	(revision 3398)
@@ -32,9 +32,16 @@
 
     public static void SuspendRepaint(this Control control) {
-      SendMessage(control.Handle, WM_SETREDRAW, false, 0);
+      if (control.InvokeRequired)
+        control.Invoke((Action<Control>)((c) => { c.SuspendRepaint(); }));
+      else
+        SendMessage(control.Handle, WM_SETREDRAW, false, 0);
     }
     public static void ResumeRepaint(this Control control, bool refresh) {
-      SendMessage(control.Handle, WM_SETREDRAW, true, 0);
-      if (refresh) control.Refresh();
+      if (control.InvokeRequired)
+        control.Invoke((Action<Control, bool>)((c, b) => { c.ResumeRepaint(b); }));
+      else {
+        SendMessage(control.Handle, WM_SETREDRAW, true, 0);
+        if (refresh) control.Refresh();
+      }
     }
   }
Index: /trunk/sources/HeuristicLab.MainForm.WindowsForms/3.2/DockingMainForm.cs
===================================================================
--- /trunk/sources/HeuristicLab.MainForm.WindowsForms/3.2/DockingMainForm.cs	(revision 3397)
+++ /trunk/sources/HeuristicLab.MainForm.WindowsForms/3.2/DockingMainForm.cs	(revision 3398)
@@ -70,5 +70,5 @@
       IContentView contentView = view as IContentView;
       if (ShowViewsInViewHost && contentView != null && contentView.GetType() != typeof(ViewHost)) {
-        ViewHost viewHost = new ViewHost(contentView.Content);
+        ViewHost viewHost = new ViewHost(contentView);
         form = new DockForm(viewHost);
       } else
Index: /trunk/sources/HeuristicLab.MainForm.WindowsForms/3.2/MultipleDocumentMainForm.cs
===================================================================
--- /trunk/sources/HeuristicLab.MainForm.WindowsForms/3.2/MultipleDocumentMainForm.cs	(revision 3397)
+++ /trunk/sources/HeuristicLab.MainForm.WindowsForms/3.2/MultipleDocumentMainForm.cs	(revision 3398)
@@ -76,5 +76,5 @@
       IContentView contentView = view as IContentView;
       if (ShowViewsInViewHost && contentView != null && contentView.GetType() != typeof(ViewHost)) {
-        ViewHost viewHost = new ViewHost(contentView.Content);
+        ViewHost viewHost = new ViewHost(contentView);
         form = new DocumentForm(viewHost);
       } else
Index: /trunk/sources/HeuristicLab.MainForm.WindowsForms/3.2/SingleDocumentMainForm.cs
===================================================================
--- /trunk/sources/HeuristicLab.MainForm.WindowsForms/3.2/SingleDocumentMainForm.cs	(revision 3397)
+++ /trunk/sources/HeuristicLab.MainForm.WindowsForms/3.2/SingleDocumentMainForm.cs	(revision 3398)
@@ -70,5 +70,5 @@
       IContentView contentView = view as IContentView;
       if (ShowViewsInViewHost && contentView != null && contentView.GetType() != typeof(ViewHost)) {
-        ViewHost viewHost = new ViewHost(contentView.Content);
+        ViewHost viewHost = new ViewHost(contentView);
         form = new DocumentForm(viewHost);
       } else
Index: /trunk/sources/HeuristicLab.MainForm.WindowsForms/3.2/View.cs
===================================================================
--- /trunk/sources/HeuristicLab.MainForm.WindowsForms/3.2/View.cs	(revision 3397)
+++ /trunk/sources/HeuristicLab.MainForm.WindowsForms/3.2/View.cs	(revision 3398)
@@ -58,5 +58,5 @@
     public virtual bool ReadOnly {
       get { return this.readOnly; }
-       set {
+      set {
         if (InvokeRequired) {
           Action<bool> action = delegate(bool b) { this.ReadOnly = b; };
@@ -208,7 +208,13 @@
 
     public void SuspendRepaint() {
-      ((Control)this).SuspendRepaint();
+      if (InvokeRequired)
+        Invoke((MethodInvoker)SuspendRepaint);
+      else
+        ((Control)this).SuspendRepaint();
     }
     public void ResumeRepaint(bool refresh) {
+      if (InvokeRequired)
+        Invoke((Action<bool>)ResumeRepaint,refresh);
+      else
       ((Control)this).ResumeRepaint(refresh);
     }
Index: /trunk/sources/HeuristicLab.MainForm.WindowsForms/3.2/ViewHost.cs
===================================================================
--- /trunk/sources/HeuristicLab.MainForm.WindowsForms/3.2/ViewHost.cs	(revision 3397)
+++ /trunk/sources/HeuristicLab.MainForm.WindowsForms/3.2/ViewHost.cs	(revision 3398)
@@ -28,5 +28,5 @@
 namespace HeuristicLab.MainForm.WindowsForms {
   [Content(typeof(object))]
-  public sealed partial class ViewHost : ContentView {
+  public sealed partial class ViewHost : AsynchronousContentView {
     private Dictionary<Type, IContentView> cachedViews;
     public ViewHost() {
@@ -41,4 +41,11 @@
       : this() {
       this.Content = content;
+    }
+
+    public ViewHost(IContentView contentView) :this(){
+      this.viewType = contentView.GetType();
+      this.Content = contentView.Content;
+      this.cachedViews.Add(contentView.GetType(), contentView);
+      this.UpdateView();
     }
 
@@ -88,6 +95,4 @@
       viewsLabel.Visible = false;
       viewPanel.Visible = false;
-      if (viewPanel.Controls.Count > 0) viewPanel.Controls[0].Dispose();
-      viewPanel.Controls.Clear();
 
       if (Content != null) {
