草庐IT

双向队列

全部标签

c# - 队列 ForEach 循环抛出 InvalidOperationException

我没用过Queues之前的任何真实程度,所以我可能会遗漏一些明显的东西。我正在尝试遍历Queue像这样(每一帧):foreach(vareinqEnemy){//enemyAIcode}当一个敌人死亡时,敌人用户控件引发一个我订阅的事件,我这样做(队列中的第一个敌人被设计移除):voidEnemy_Killed(objectsender,EventArgse){qEnemy.Dequeue();//AddedTrimExcesstocheckiftheerrorwascausedbyNULLvaluesintheQueue(itwasn't:))qEnemy.TrimExcess();

c# - 如何将 IEumerable 集合添加到队列并在 .NET 中异步处理每个项目?

我已经创建了一个方法来使用交换服务器读取收件箱新消息,如下所示。如何将这些IEnumerable集合添加到队列并异步处理队列中的每个项目列表?privatestaticIEnumerableGetInboxItems(ExchangeServiceservice){varemailInformations=newList();try{SearchFiltersearchFilter=newSearchFilter.SearchFilterCollection(LogicalOperator.And,newSearchFilter.IsEqualTo(EmailMessageSchema

c# - 双向文件夹同步加密以保护我的 Dropbox 数据

我想写一个小的.NET脚本/工具,它至少大部分与SecretSync相同。或BoxCryptor,但没有将加密key存储在公司的网络服务器上。首先,这听起来很简单:您有两个文件夹——“解密”文件夹和“加密”文件夹。在这两个文件夹上都有一个FileSystemWatcher因此,当文件发生更改时,该工具会收到通知。如果“解密”文件夹中的文件发生更改,它会加密该文件并将其写入“加密”文件夹。如果“加密”文件夹中的文件发生更改,它会解密该文件并将其写入“解密”文件夹。目前没问题。但是,如果用户直接从“已解密”文件夹运行应用程序(例如KeePass),会发生什么情况?同步和加密过程现在会遇到问

c# - 使用 HTTPClient 进行双向身份验证

我正在尝试对需要双向SSL连接(客户端身份验证)的服务器进行HTTP调用。我有一个包含多个证书和密码的.p12文件。请求使用ProtocolBuffer进行序列化。我的第一个想法是将keystore添加到HttpClient使用的WebRequestHandler的ClientCertificate属性中。我还在我的计算机上将keystore添加到我信任的根证书颁发机构。当执行PostAsync时,我总是收到“无法创建ssl/tls安全通道”。显然我做错了什么,但我在这里有点不知所措。如有任何指点,我们将不胜感激。publicvoidSendRequest(){try{ServiceP

c# - 使用 MVVM 的 WPF ComboBox 双向绑定(bind)问题

我有一个Activity具有许多属性的对象。其中之一如下:publicActivityStatusStatus{get{returnstatus;}set{status=value;NotifyPropertyChanged("Status");}}ActivityStatus类只有两个属性:publicGuidGuid{get{returnguid;}set{guid=value;NotifyPropertyChanged("Guid");}}publicstringName{get{returnname;}set{name=value;NotifyPropertyChanged("

c# - 双向映射有什么问题?

我已经成功使用AutoMapper几个月了,但现在我遇到了一些绊脚石。我需要(或认为我需要)的是2向映射。这是当我从数据库加载一个项目在屏幕上播放时(域对象->View模型)以及当用户对所述项目进行更改并将其映射回我的域对象(View模型->域对象)时。我知道我可以简单地在我的配置文件中创建一个映射来处理双向映射,但我正在阅读here双向映射是不必要的。许多人表示,这样做是对没有解决更大问题(无论可能是什么)的回应。我只是想知道为什么这是一种代码味道? 最佳答案 当我还是一名初级开发人员时,我参与了一个大型项目,该项目基本上实现了您

C#任务多队列节流

我需要一个需要维护不同任务队列的环境,并且每个任务队列都有明确定义的并发线程数,可以为每个队列执行。像这样:队列1->3个线程;队列2->6个线程;任务系统的种类。我已经成功地使用普通的旧c#代码(又名System.Threading.Thread、锁和队列)自己实现了这一点,它可以正常工作1年以上。然而,我一直在阅读关于TaskFactory和TaskScheduler的奇迹的文章,关于.NET中内置类的可能性,但我没有找到一个例子来证明这一点。我想测试它并与我现在拥有的进行比较,看看它是否运行得更好,如果运行良好,则更换它。此外,我可以不必限制/设置每个队列的并行线程数,只要我能得

c# - 队列如何与 foreach 循环交互

我真的很惊讶这个问题没有真正的答案。例如,我有一个遍历队列的foreach循环(我使用的是.Net版本)foreach中的队列到底发生了什么?它是否像标准枚举器一样简单地迭代?或者它是否使用Dequeue()功能。为清楚起见:Queueq=newQueue();foreach(intiinq){//whathappensinthisloop?} 最佳答案 Doesitsimplyiterateslikeastandardenumerator?OrdoesitusetheDequeue()它不是迭代队列,而是在其内部数组中通过索引和桶

c# - 堆栈和队列枚举顺序

我知道List枚举器保证枚举顺序并尊重最后的排序操作,我知道Dictionary和HashSet不,即你可以不确定Dictionarydictionary=...;foreach(varpairindictionary){}将按照附加的顺序处理对。Stack和Queue呢?他们的调查员是否保证任何顺序? 最佳答案 对于Stack,枚举目前由一个名为StackEnumerator的嵌套私有(private)类完成(这是来自ReferenceSource):privateclassStackEnumerator:IEnumerator,

c# - 维护类之间的双向关系

在类之间有双向映射是很常见的,尤其是在带有ORM的应用程序中。像这样:publicclassProduct{privateListHistoricPrices{get;privateset;}}publicclassPrice{privateProductProduct{get;set;}}是否有一种公认的方法可以在代码中维护这种关系?这样一来,当我为产品添加价格时,Product属性会自动设置吗?理想情况下,我正在寻找一种易于重用的解决方案。必须向集合中添加一些东西然后手动设置相反的关系似乎是错误的。请注意,这不是关于如何为产品和价格建模的问题,而是关于如何为双向关系建模的问题。在很