gpt4 book ai didi

c# - 多线程和委托(delegate)执行

转载 作者:太空宇宙 更新时间:2023-11-03 11:46:35 24 4
gpt4 key购买 nike

我创建了一个对象,该对象具有处理不同类型事件的特定方法,并且会一直存在到我的应用程序运行为止。我还创建了指向每个方法的单独委托(delegate),并引用了 x 个线程。给定 y 和 z 线程将通过使用指向它的委托(delegate)来调用 method1,z 线程是否会等待 y 线程完成才能使用 method1?或者他们可以同时调用它?

最佳答案

除非您使用锁定或某种其他类型的互斥体,否则每个线程将并行调用委托(delegate)背后的方法。他们不会互相等待。

这就是线程安全发挥作用的地方。两个不同的线程同时执行一个方法本身并没有什么坏处,但是如果该方法触及其所有者类的实例成员并且这两个线程同时针对一个实例进行操作,您就有线程冲突和错误的风险从 fatal error 到奇怪、微妙且难以重现的行为。我的经验法则是在可以避免的情况下不要混合使用线程和状态。

关于c# - 多线程和委托(delegate)执行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3278363/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com