[commit] r2661 - trunk/SDK/DotNet/CSharpComponentWizard
GMESRC Repository Notifications
gme-commit at list.isis.vanderbilt.edu
Fri Jan 27 13:01:44 CST 2017
Author: ksmyth
Date: Fri Jan 27 13:01:44 2017
New Revision: 2661
Log:
Fix COM Message Filter for worker thread
Modified:
trunk/SDK/DotNet/CSharpComponentWizard/MainWindow.xaml.cs
Modified: trunk/SDK/DotNet/CSharpComponentWizard/MainWindow.xaml.cs
==============================================================================
--- trunk/SDK/DotNet/CSharpComponentWizard/MainWindow.xaml.cs Fri Jan 27 09:11:04 2017 (r2660)
+++ trunk/SDK/DotNet/CSharpComponentWizard/MainWindow.xaml.cs Fri Jan 27 13:01:44 2017 (r2661)
@@ -11,6 +11,7 @@
using System.Linq;
using System.Runtime.InteropServices;
using System.Runtime.CompilerServices;
+using System.Threading;
namespace CSharpComponentWizard
{
@@ -157,14 +158,25 @@
BackgroundWorker worker = new BackgroundWorker();
worker.WorkerReportsProgress = true;
worker.ProgressChanged += GenerationProgressChanged;
- worker.DoWork += GenerationWork;
+ worker.DoWork += GenerationWorkWrapper;
worker.RunWorkerCompleted += GenerationCompleted;
worker.RunWorkerAsync();
}
+ private void GenerationWorkWrapper(object sender, DoWorkEventArgs e)
+ {
+ Thread staThread = new Thread(() => GenerationWork(sender, e));
+ staThread.SetApartmentState(ApartmentState.STA);
+ staThread.Start();
+ staThread.Join();
+ }
+
private void GenerationWork(object sender, DoWorkEventArgs e)
{
BackgroundWorker worker = sender as BackgroundWorker;
+ IMessageFilter oldFilter;
+ int ret = CoRegisterMessageFilter(new RetryMessageFilter(), out oldFilter);
+ // Debugger.Log(10, "debug", ret.ToString());
try
{
More information about the gme-commit
mailing list