|
-
November 20th, 2009, 04:53 AM
#1
COM Method call blocks Client in COM Server
i have a COM Server which exposes a COM interface name "IMyInterface".
it has a lengthy processing COM method (Init )that must be called before any other method calls of this interface.
the problem is COM client's UI freze when Init() is called. i would like to have client responsive. to solve this issue. i return E_PENDING when Init() is called. if Client gets E_PENDING then clients need to Poll another method GetStatus(). if status returns S_OK. they could call other methods.
inside the length processing function (Init()). i created a seperate thread and call the internal function ( say InitEx) by passing "this" as a arguments in the thread function.
but i am quite surprised to see that the Clients Call still blocks. later i came to know that this is because COM serialization and appartment models. my thread call is just a proxy to main thread COM object,
now the problem is the CMyInterface Class has a member variable of internal wrraper class. so if i access its function they will also be serilized. and UI will be frezed.
could some tell me how to fix this.
regards
deepak
Posting Permissions
- You may not post new threads
- You may not post replies
- You may not post attachments
- You may not edit your posts
-
Forum Rules
|
Click Here to Expand Forum to Full Width
|