如何使用SynchronizingObject进行事件调用

时间:2017-01-06 15:02:38

标签: c# winforms

对于我正在处理的应用程序,我使用SpotifyLocalAPI,并且我想使用API​​具有的事件。但是,作为现在进入C#几个月的人,我不知道从哪里开始。有another project based on this API使用这些事件,但是它在WPF中,如果我正确理解我的googeling,这会使它成为一个不同的交易。这意味着对于WinForms,我必须做一些不同的事情,但我似乎无法弄清楚如何。

API的文档指出SynchronizingObject。当我看看WPF项目是如何做到这一点时,它有一个功能(found here)来做一些魔术,而 poof ,它可以工作。

如果我理解this answer正确ISynchronizeInvoke_spotify.SynchronizingObject界面的属性,那么" provides synchronous and asynchronous communication between objects about the occurrence of an event."。

好的,到目前为止一切顺利。我想我理解界面的基本工作,但是我应该如何使用它?我如何说服应用程序它应该对事件作出反应?我该如何定义params="[[myJsonObject]]"? (这对我来说是主要的问题)

1 个答案:

答案 0 :(得分:1)

您可以将SynchronizationObject设置为实现IShynchronizeInvokeFormUserControl等)的任何UI元素。查看示例Winforms app here。请注意,这是可选的,在该示例应用中,他们选择在事件处理程序中明确使用Invoke()。需要记住的重要一点是,如果要更新UI,则必须在UI线程上运行代码。有关此here的详细信息。