我有一个List集合,我想在多线程应用程序中迭代它.我需要在每次迭代时保护它,因为它可以被更改,而且当我做foreach时我不希望"收集被修改"异常.
这样做的正确方法是什么?
每次访问或循环时都使用锁定.我很害怕死锁.也许我只是偏执使用锁而不应该.如果我走这条路以避免死锁,我需要知道什么?锁是否相当有效?
每次我执行foreach时,使用List <>.ToArray()复制到数组.这会导致性能下降,但很容易做到.我担心内存颠簸以及复制它的时间.看起来过分了.使用ToArray是否安全?
不要使用foreach而是使用for循环.每次我这样做以确保列表没有缩小时,我不需要进行长度检查吗?这看起来很烦人.
为什么我不能查询我刚刚通过append()添加的元素?
$('body').append('<div id="testing"></div>');
if($("#testing").length == 0)
alert("WTF! Testing div should be there!");
Run Code Online (Sandbox Code Playgroud)
是否有某种布局在JS完成运行之前不会发生?
我怎么能绕过这个?有没有其他方法我可以调用创建dom元素立即使用?