System.Exception: The application called an interface that was marshalled for a different thread. (Exception from HRESULT: 0x8001010E)
Hong
1,211
Reputation points
public Dictionary<Guid, MyClass> _dictMyClass;
...
if (_dictMyClass.ContainsKey(gID))
{
MyClass myClass = _dictMyClass[gID];
}
Occasionally and rarely), the above line throws the following exception:
System.Exception: The application called an interface that was marshalled for a different thread. (Exception from HRESULT: 0x8001010E)
Stack Trace:
at System.Runtime.InteropServices.McgMarshal.ThrowOnExternalCallFailed(Int32, RuntimeTypeHandle) + 0x21
at __Interop.ComCallHelpers.Call(__ComObject, RuntimeTypeHandle, Int32, Void*, Void*) + 0xc2
at __Interop.ForwardComStubs.Stub_7[TThis, TArg0](__ComObject, TArg0, Int32) + 0x6f
at Windows.UI.Xaml.IDependencyObject__Impl.Stubs.GetValue(__ComObject, DependencyProperty) + 0x1e
Could anyone offer a tip on the possible cause of this? Any hint to point me in the right direction in investigating this will be appreciated.
I want to emphasize this is rare. I would say the code works flawlessly 99.9% of the time.
Sign in to answer