Я понимаю, что ISynchronizeInvoke - это обычный способ определить, имеет ли объект сходство с потоками.Но я нашел объекты (по крайней мере, в Windows Forms), которые не реализуют это, но все еще имеют сродство с потоками.Есть ли более общий способ выяснить сходство?
Мой пример - System.Windows.Forms.TreeView.Это элемент управления, он реализует ISynchronizeInvoke, и все очень просто.У него есть свойство Nodes, которое возвращает коллекцию TreeNodeCollection.Эта коллекция НЕ реализует ISynchronizeInvoke, но она все еще имеет ту же привязку к потоку, потому что ее методы в конечном итоге будут вызывать методы родительского класса TreeView.
Моя проблема в том, что мое приложение имеет механизм очень общего назначения, в котором пользователь может использовать программу для вызова произвольных свойств и методов в любом классе .NET, и эти вызовы распределяются между несколькими потоками за кулисами.TreeViewCollection - это всего лишь один пример, в котором у меня нет возможности узнать, следует ли мне маршалировать вызов соответствующего потока.Когда он приходит, у меня просто есть Объект, и я не могу узнать, откуда он.
Так есть ли более общий способ определения соответствия потоков в этой ситуации?
Спасибо, Фил