Hi,
Thanks for the snippet.
Based on this and some other sample code I ended up hatching a delegate in
the main window and invoking the delegate in the worker thread.
regards
Bob
"TrtnJohn" <TrtnJohn@discussions.microsoft.com> wrote in message
news:3689958C-4515-42EA-B233-9BC7E552EC70@microsoft.com...[color=blue]
> You should check if InvokeRequired is set on the ISynchronizeInvoke
> interfaced of your event sink before raising the event from a separate
> thread. If this event sink requires synchronization, you'll need to call
> Invoke instead. Here is some sample code of a OnTestEvent that implements
> this.
>
> Public Event TestEvent as EventHandler
>
> Protected Overridable Sub OnTestEvent(ByVal sender As Object, ByVal[/color]
args[color=blue]
> As System.EventArgs)
> If Not TestEventEvent Is Nothing Then
> Dim singlecast As EventHandler
>
> 'Check each multi-cast delegate
> For Each singlecast In TestEventEvent.GetInvocationList
> Dim syncInvoke As System.ComponentModel.ISynchronizeInvoke
> If TypeOf singlecast.Target Is
> System.ComponentModel.ISynchronizeInvoke Then
> syncInvoke = CType(singlecast.Target,
> System.ComponentModel.ISynchronizeInvoke)
> End If
> If Not syncInvoke Is Nothing Then
> If syncInvoke.InvokeRequired Then
> syncInvoke.Invoke(singlecast, New Object() {Me,[/color]
New[color=blue]
> EventArgs})
> Else
> singlecast(Me, Nothing)
> End If
> End If
> Next
>
>
> End If
>
>
> End Sub
>
> "Bob" wrote:
>[color=green]
> > Hi,
> > Moving a project from .net 2003 -> 2005 Beta 2
> > Windows App. Main Window is start object.
> > Main window spawns a thread.
> > After doing some work this thread raises an interrupt.
> > The event carries a reference to the class that raised it plus an
> > instantiated, empty eventarg.
> > RaiseEvent LineStateChange(Me, e)
> >
> > The 'RaiseEvent' errors in 2005 with Cross thread...
> >
> > Any ideas on what is going on here?
> > Thanks
> > Bob
> >
> >
> >[/color][/color]