3

我有一个 taskBarIcon 元素,它扩展了我的整个 UI 设计的应用程序上下文。这是因为应用程序的原始功能是运行后台进程并简单地提供图标作为应用程序正在运行的确认。但是,我现在以菜单的形式添加其他功能,可以通过右键单击图标来访问,并且由于核心功能在一个线程上运行,并且主线程上的图标,我在访问图标时遇到问题在需要显示通知气泡的简单情况下。没有其他点可以让两个线程访问相同的内存,因此同步并不是真正的问题。

我习惯了Java,其中这个过程要简单得多。我已经阅读了我可以找到的有关 C# 所需的调用委托舞蹈的文章,但没有一篇文章是特定于扩展应用程序上下文的对象。我当前的实现太不可预测,无法保证生产安全。

我的问题是:如何将消息发送到其他进程以显示通知气泡,而不影响菜单的可访问性?具体来说,一个简单的例子,一个扩展应用程序上下文的 UI 类和一个在单独线程上调用调用方法的类将非常有帮助。

我真的很感激任何帮助!

坏熊猫

4

1 回答 1

1

您也可以在创建通知气泡的同一线程上使用SynchronizationContext分配给的对象。SynchronizationContext.Current然后,您可以将您的SynchronizationContext对象传递到菜单所在的任何组件中,并使用它context.Send(....)来发送消息。或者,如果您可以访问通知气泡组件或它所在的表单,您可以这样做form.Invoke((MethodInvoker)delegate {....});

于 2010-06-23T18:02:58.027 回答