diff options
author | Ungureanu Marius <teromario@yahoo.com> | 2014-04-05 19:52:10 +0400 |
---|---|---|
committer | Ungureanu Marius <teromario@yahoo.com> | 2014-04-05 19:52:10 +0400 |
commit | 05903e6c3764ad9b990de21d7a72103107b48b54 (patch) | |
tree | 83183169566364175d4bc7f88bd5306845a6088c /main/src/addins/VersionControl/MonoDevelop.VersionControl/MonoDevelop.VersionControl.Views | |
parent | 461b6a2b8dde3d5e4cda682ac5e2dd647d92bde3 (diff) |
[VersionControl] Don't lock the GUI thread.
Diffstat (limited to 'main/src/addins/VersionControl/MonoDevelop.VersionControl/MonoDevelop.VersionControl.Views')
-rw-r--r-- | main/src/addins/VersionControl/MonoDevelop.VersionControl/MonoDevelop.VersionControl.Views/VersionControlDocumentInfo.cs | 16 |
1 files changed, 11 insertions, 5 deletions
diff --git a/main/src/addins/VersionControl/MonoDevelop.VersionControl/MonoDevelop.VersionControl.Views/VersionControlDocumentInfo.cs b/main/src/addins/VersionControl/MonoDevelop.VersionControl/MonoDevelop.VersionControl.Views/VersionControlDocumentInfo.cs index 19019443a7..de20609b6c 100644 --- a/main/src/addins/VersionControl/MonoDevelop.VersionControl/MonoDevelop.VersionControl.Views/VersionControlDocumentInfo.cs +++ b/main/src/addins/VersionControl/MonoDevelop.VersionControl/MonoDevelop.VersionControl.Views/VersionControlDocumentInfo.cs @@ -96,17 +96,23 @@ namespace MonoDevelop.VersionControl.Views object updateLock = new object (); ManualResetEvent mre = new ManualResetEvent (false); - + + // Runs an action in the GUI thread. public void RunAfterUpdate (Action act) { if (mre == null) { act (); return; } - mre.WaitOne (); - act (); - mre.Dispose (); - mre = null; + + ThreadPool.QueueUserWorkItem (delegate { + mre.WaitOne (); + mre.Dispose (); + mre = null; + DispatchService.GuiDispatch (delegate { + act (); + }); + }); } protected virtual void OnUpdated (EventArgs e) |