【发布时间】:2020-01-17 06:49:57
【问题描述】:
我有一个类,其中根据从外部应用程序接收到的事件调用方法。
public void ProcessItems(Store id,Items items)
{
//Some logic
UpdateValidItems(id,validItems)
}
public void UpdateValidItems(Store id,Items items)
{
//Save in DB
}
在处理 UpdateValidItems 时,外部应用程序可能会调用“ProcessItems”。我希望如果 UpdateValidItems 正在处理并且在 UpdateValidItems 处理期间调用事件,那么它应该等到 UpdateValidItems 完成。有什么办法吗?
此外,一次可以处理多个商店。所以它应该只等待基于商店的。如果 storeId 不同,则不应等待。
【问题讨论】:
-
使用 lock() 是一个选项吗?
-
我们可以使用锁。
-
检查我在下面发布的答案。它包含一个示例。
标签: c# multithreading event-handling