小编ker*_*_xc的帖子

System.InvalidOperationException:集合已被修改

我在通过队列枚举时遇到以下异常:

System.InvalidOperationException:集合已被修改; 枚举操作可能无法执行

这是代码摘录:

1:    private bool extractWriteActions(out List<WriteChannel> channelWrites)
2:    {
3:        channelWrites = new List<WriteChannel>();
4:        foreach (TpotAction action in tpotActionQueue)
5:        {
6:            if (action is WriteChannel)
7:            {
8:                channelWrites.Add((WriteChannel)action);
9:                lock(tpotActionQueue)
10:               {
11:                  action.Status = RecordStatus.Batched;
12:               }
13:           }
14:       }
15:       return (channelWrites.Count > 0);
16:   }
Run Code Online (Sandbox Code Playgroud)

我想我理解了这个问题 - 改变哈希表action.Status = RecordStatus.Batched,这搞砸了枚举器上的MoveNext().问题是,我该如何正确实现"模式"?

c# collections thread-safety

5
推荐指数
2
解决办法
2万
查看次数

DatePicker编辑器模板

下面是一个EditorTemplate,它使用EditorFor帮助器呈现Bootstrap datetimepicker,我看到的问题是脚本部分.它适用于DateTimePicker每个视图一个- 但由于我使用类选择器,每当我DateTimePicker在每个视图中使用2个或更多时,它会呈现重复的<script>部分,使DOM在TextBox调用日历时感到困惑.我在这里错过了什么?

   @model DateTime?
   <div class='input-group date datePicker'>
      <span class="input-group-sm">
         @Html.TextBox("", Model.HasValue ? Model.Value.ToString("d") : String.Empty)
      </span>
   </div>
   <script type="text/javascript">
       $(function() {
       $('.datePicker').datetimepicker({
           pickTime: false
       });
   });
   </script>
Run Code Online (Sandbox Code Playgroud)

asp.net-mvc mvc-editor-templates asp.net-mvc-4 bootstrap-datetimepicker

3
推荐指数
1
解决办法
1万
查看次数