I have searched the internet for a basic question, but not found the answer yet.... Here it is:
- I have a GUI which executes on the GUI-thread. Further I have another thrad which does video processing using DirectShow (this is COM).
- Now I want to execute a function on the same thread as where the videoprocessing is executing. This is initiated by the GUI-thread. Touching the COM-referenced object goes wrong if a execute the function from another thread (I understand that).
When a call the function from the same thread everything goes fine. But to do this I have the poll some flag-bits in the mainloop, and that is not a 'pretty' solution...
All discussions on the internet are about how change the GUI from a different thread.
I have tried several things:
1) Invoke the function using a delegate. This doesn't wordt, since the function is executed in the GUI thread. (checked bu ThreadID's)
2) BeginInvoke the function using a delegate. May be .net executes the function in a original thread where the object has been created. This does also not work: .net used random threads (probaby from the threadpool)
3) ISynchronizeInvoke, Threading.SynchronizationContext and some other features seems only to work on the GUI thread only...
The question: Is there a way to Post, Send of Invoke a delegate on the specific thread (for example by a reference to this thread or threadID)
Thanx in advance! Mike
- I have a GUI which executes on the GUI-thread. Further I have another thrad which does video processing using DirectShow (this is COM).
- Now I want to execute a function on the same thread as where the videoprocessing is executing. This is initiated by the GUI-thread. Touching the COM-referenced object goes wrong if a execute the function from another thread (I understand that).
When a call the function from the same thread everything goes fine. But to do this I have the poll some flag-bits in the mainloop, and that is not a 'pretty' solution...
All discussions on the internet are about how change the GUI from a different thread.
I have tried several things:
1) Invoke the function using a delegate. This doesn't wordt, since the function is executed in the GUI thread. (checked bu ThreadID's)
2) BeginInvoke the function using a delegate. May be .net executes the function in a original thread where the object has been created. This does also not work: .net used random threads (probaby from the threadpool)
3) ISynchronizeInvoke, Threading.SynchronizationContext and some other features seems only to work on the GUI thread only...
The question: Is there a way to Post, Send of Invoke a delegate on the specific thread (for example by a reference to this thread or threadID)
Thanx in advance! Mike