【发布时间】:2011-11-08 13:33:07
【问题描述】:
我正在创建一个自定义状态机,为了成为决定论者,我必须“同步”我的转换。我不确定“同步”这个词,但我想要的是当我调用一个函数(通过 EventHandler)时,系统就像在我可以调用另一个函数(也通过 EventHandler)之前冻结。
用英语准确地解释它有点困难,但我想你知道我的意思......
我在考虑线程,但我真的很想避免这种情况......
【问题讨论】:
-
请发布您的代码,以便我们看到您在说什么。
-
如果您不使用多线程,它已经以您想要的方式工作。直到事件处理程序的执行没有完成,其他功能不能丰富。
-
事实上,我从一个状态到另一个状态的转换是由“事件”(如 java 中的侦听器)触发的,我不知道 C# 是如何工作的。我的意思是,当 C# 意识到前一个事件的每个函数调用都结束时,是否有一种事件堆栈和事件被 1 个触发?还是 C# 在多个线程中触发侦听器?
-
@GuillaumeCogranne:C# 中的事件按顺序进行。因此,如果您不在任何多线程代码内部调用,它们将阻止您的程序执行,直到其执行结束。
-
我在“ActionListener”中尝试了一个 Thread.sleep 并注意到你在说什么!谢谢你的信息
标签: c# multithreading synchronization