Tag: 上下文

何时在UI应用程序中调用SynchronizationContext.SetSynchronizationContext()?

我正在学习SynchronizationContext类。 我试图了解在WinForm / WPF应用程序的上下文中调用SynchronizationContext.SetSynchronizationContext()的常见用法场景。 设置线程的SynchronizationContext意味着什么? 我什么时候该做,为什么? 另外,如果我设置它,我应该在某个时候取消它吗? 编辑: 在他的回答中,@ Hans Passant问为什么我在考虑SetSynchronizationContext() 。 我的想法是在工作线程上设置上下文,以便在该线程上运行的代码将具有要使用的上下文。 private void button3_Click(object sender, EventArgs e) { var syncContext = SynchronizationContext.Current; Task.Factory.StartNew(() => { // Setup the SynchronizationContext on this thread so // that SomeAsyncComponentThatNeedsACurrentContext // will have a context when it needs one if (SynchronizationContext.Current == null) SynchronizationContext.SetSynchronizationContext(syncContext); var c = […]

WPF透明菜单

我目前有以下菜单: 我无法弄清楚如何制作半透明或完全透明的部分,类似浮动文本。 这样我就能看到下面的表格。 任何帮助,将不胜感激。 谢谢!

当前的OperationContext在WCF Windows服务中为null

我正在尝试使用WCF设置发布/订阅系统,并且WCF服务器位于Windows服务中。 绑定是net.TCP。 该服务向客户端提供“订阅”方法,以便客户端可以将回调处理程序注册到将从链接到服务器的DLL引发的事件。 在Subscribe方法中,我尝试使用OperationContext.Current.GetCallbackChannel方法获取回调通道。 当我尝试这个时,OperationContext.Current属性返回NULL。 谁能告诉我在什么情况下这个属性会返回null? 我错过了设置吗? 我将在下面包含服务代码和接口代码。 我在Visual Studio 2012和目标框架4.5中使用c#。 服务: namespace WService { [ServiceBehavior(InstanceContextMode = InstanceContextMode.PerSession)] public class WcfPublisherService : IWcfPublisherContract { IOALogic logic = new OAControlExample(); IWcfSubscriberContract _callback = null; public void Subscribe() { _callback = OperationContext.Current.GetCallbackChannel(); logic.BarriersChanged += logic_BarriersChanged; } public void UnSubscribe() { logic.BarriersChanged -= logic_BarriersChanged; } void logic_BarriersChanged(object sender, […]

为什么我的Winforms应用程序中的SynchronizationContext.Current为null?

我刚写了这段代码: System.Threading.SynchronizationContext.Current.Post( state => DoUpdateInUIThread((Abc)state), abc); 但System.Threading.SynchronizationContext.Current为null