Xan*_*ham 14 .net c# events event-handling reference-type
一个相当简单的问题(我认为),但我似乎没有看到答案.我知道有些值是通过值传递的(比如int和long),而其他值是通过引用传递的(比如字符串),当你将它们传递给函数时.
在我的程序中,我使用后台工作程序,以便在我们在后台执行长时间的过程时GUI不会锁定.我需要将数据从另一个文件传递回UI线程,所以我一直在使用事件.现在我需要将一个字符串数组列表发送回GUI线程来处理,我担心它将如何处理.基本上,在工作线程中,我有一个循环,它将填充列表,通过事件处理程序将其发送回GUI,然后清除它,以便它可以在下一次循环中填充它并重新开始.
我担心当我这样做时,如果列表是通过引用传递的,那么在UI线程上,我认为它会在读取中间被清除,因为工作线程仍将在后台清除它.在这种情况下,传递将是更可取的,我可以找到强制它的方法(复制到某个持有者数组或添加互斥或类似的东西),但我认为知道事件参数是否通过传递是很好的一般的引用或值,或者它与方法是否相同,并且它会在通常传递参数时传递它们?