如何在使用任务时使用上一个任务的结果继续使用另一个函数?

我有WCF连接器,应该为我获取一些少量数据,通常需要20秒才能获得每个项目的数据(这很好)。 我想使用Task为我获取数据,然后使用此任务中的值添加WinForm控件。 我已经创建了包含这些数据的对象列表。 首先使用Task作为更新列表的任务,我希望在完成第一个Task创建控件后立即执行Task。 这是到目前为止的代码: List ipVersionCounters = new List(); Task task = Task.Factory.StartNew(() => { foreach (var sitein settings.Sites) { string ip = site.ip; string version = “undefined”; using (WcfConnector wcfConnector = WcfConnector.CreateConnectorWithoutException((ip))) { if (wcfConnector != null) { version= string.Format(“{0} {1} {2}”, wcfConnector.VersionController.GetBranchName(), wcfConnector.VersionController.GetBuildNumber(), wcfConnector.VersionController.GetCurrentVersion()); } } counter++; ipVersionCounters.Add(new IpVersionCounter { Ip = […]

使用数据模板(WPF)在ListBox中内联编辑TextBlock

使用WPF,我有一个ListBox控件,里面有一个DataTemplate 。 相关的XAML代码如下所示: 我想要做的是让TextBlock响应(双)单击,将其转换为TextBox 。 然后,用户可以编辑描述,然后按返回或更改焦点进行更改。 我尝试在与TextBlock相同的位置添加一个TextBox元素并使其可见性Collapsed ,但我不知道当用户单击TextBlock时如何导航到正确的TextBox 。 也就是说,我知道用户点击了某个TextBlock ,现在我显示哪个 TextBox ? 任何帮助将非常感激, -Ko9

变量初始化:直接还是在构造函数中?

可能重复: 最佳实践:在构造函数或声明中初始化类字段? 大多数时候,我看到了像这样初始化变量的方法 public class Test { private int myIntToInitalize; public Test() { myIntToInitalize = 10; } } 从我的角度来看,这是初始化变量的最常用方法。 书籍,博客以及.NET的内部实现中的大多数代码都与我的示例相同。 最近我看到人们直接进行初始化,所以没有在构造函数中设置值。 public class Test { private int myIntToInitalize = 10; } 从观点来看,初始化和声明变量或初始化构造函数中的变量没有区别。 除了最佳实践和代码行的长度,直接初始化变量的好处在哪里,是否存在细微差别?

EF代码优先:如何在跟踪DDD时从实体的Collection中删除一行?

所以这是场景: DDD声明您使用存储库来获取聚合根,然后使用它来添加/删除它拥有的任何集合。 添加很简单,您可以在要添加的Collection上简单地调用.Add(Item item) 。 保存时,会在数据库中添加一个新行。 但是,删除是不同的 – 调用.Remove(Item item)不会从数据库中删除该项,它只是删除外键。 所以,虽然,是的,它在技术上不再是集合的一部分,它仍然在数据库中。 阅读,唯一的解决方案是使用数据上下文删除它。 但根据DDD,域对象不应该知道数据上下文,因此删除必须在域外进行。 什么是正确的方法? 或者让数据库中的孤儿可以接受(也许是运行例程来清除它们)?

多语种wpf应用程序

我有一个WPF应用程序(英文),我想让用户选择不同的语言。 我已经阅读了一些在运行时应用程序中更改语言的可能性,但我只想在安装时选择一种语言,而不是更改它。 您认为最快最容易的方法是开发不同版本的程序(仅更改文本语言)并让用户在安装过程中选择其中一个版本吗? 可能重复代码只更改文本框或标签不是很优雅,但请注意我的应用程序用英语完成,我不需要在运行时更改语言。

扩展方法的缺点?

扩展方法是一个非常有用的function,您可以在任何类中添加许多所需的function。 但我想知道是否有任何不利因素可能给我带来麻烦。 有什么意见或建议吗?

使用C#中的StackExchange / Sentinel进行Redis故障转移

我们目前正在使用Redis 2.8.4和StackExchange.Redis(并且喜欢它),但目前还没有任何针对硬件故障等的保护。 我正在努力让解决方案正常工作,我们有主/从和监控但不能完全到达那里,我在搜索后找不到任何真正的指针。 所以目前我们已经做到了这一点: 我们在每个节点上有3个redis服务器和sentinel(由Linux人员设置):devredis01:6383(master)devredis02:6383(slave)devredis03:6383(slave)devredis01:26379(sentinel)devredis02:26379(sentinel)devredis03: 26379(哨兵) 我能够将StackExchange客户端连接到redis服务器并进行写入/读取,并使用Redis Desktop Managervalidation是否正在跨所有redis实例复制数据。 我也可以使用不同的ConnectionMultiplexer连接到sentinel服务,查询配置,请求主redis节点,请求奴隶等。 我们还可以终止主redis节点并validation其中一个从属是否被提升为主节点,并且复制到另一个从节点继续工作。 我们可以观察redis连接尝试重新连接到主设备,并且如果我重新创建ConnectionMultiplexer,我可以再次写入/读取新升级的主设备并从从设备读取。 到现在为止还挺好! 我缺少的是你如何在生产系统中将它们整合在一起? 我应该从sentinel获取redis端点并使用2个ConnectionMultiplexers吗? 我究竟需要做些什么来检测节点是否已关闭? StackExchange可以自动为我执行此操作还是通过事件,以便重新连接我的redis ConnectionMultiplexer? 我应该处理ConnectionFailed事件然后重新连接,以便ConnectionMuliplexer找出新主设备是什么? 据推测,当我重新连接时,任何写入的尝试都将丢失? 我希望我不会错过一些非常明显的东西,我只是在努力将它们放在一起。 提前致谢!

mvc 3相当于function?

我在Asp.Net有一个网站,我试图移植到MVC 3,我之前只使用过MVC 2。 我偶然发现了以下的asp函数 close 看起来这可能与for循环类似,但我不太肯定如何将其转换为MVC 3架构。

使用GetType()和typeof()获取Type有什么区别?

可能重复: 类型检查:typeof,GetType还是? 哪一种是获得该类型的首选方式?

从Entity Framework 6 Model中分离POCO Object类和DBContext

我开始使用Entity Framework 6.0.1版本。 我想将生成的DbContext和POCO模板类与模型中的不同类库分开。 我花了几个小时解决问题但没有成功。 如果我创建一个新的类库,添加EF 6 EntityObject Generator并填充以下模板变量: SourceCsdlPath = @”..\..\DataAccess\Model.edmx” , 构建后在错误列表中获取以下错误: 错误2运行转换:System.IO.FileNotFoundException:无法找到文件文件名:’C:\ Source \ EFsource \ POCO …. \ DataAccess \ SZOSZRDBModel.edmx’ 服务器堆栈跟踪:位于System.Runtime.Remoting.Messaging.StackBuilderSink._PrivateProcessMessage(IntPtr md,Object [] args,Object server,Object []和outArgs)的Microsoft.VisualStudio.TextTemplating.VSHost.TextTemplatingService.ResolvePath(String path)在System.Runtime.Remoting.Messaging.StackBuilderSink.SyncProcessMessage(IMessage msg) 在[0]处重新抛出exception:位于Microsoft.VisualStudio的System.Runtime.Remoting.Proxies.RealProxy.PrivateInvoke(MessageData&msgData,Int32类型)的System.Runtime.Remoting.Proxies.RealProxy.HandleReturnMessage(IMessage reqMsg,IMessage retMsg)。 TextTemplating.ITextTemplatingEngineHost.ResolvePath在Microsoft.VisualStudio.TextTemplating31479401930D2C4820ACF71C66B5389A24A5053726798D9718DB676B3FFA30A3454B3CB1EDE2E1C267D5278B1528860C072E81A0E4647BC23993669604048FCD.GeneratedTextTransformation.ApplyUserSettings(userSettings userSettings)(字符串路径)在Microsoft.VisualStudio.TextTemplating31479401930D2C4820ACF71C66B5389A24A5053726798D9718DB676B3FFA30A3454B3CB1EDE2E1C267D5278B1528860C072E81A0E4647BC23993669604048FCD.GeneratedTextTransformation.TransformText() 错误消息是明确的,但我不知道,如何设置模型路径没有完整的绝对路径。 我不确定,使用最新版本的entity framework是最好的主意……