不仅不能确定在服务下工作的多重时间者会如何互动,而且当他们都需要写到同一个Xml档案时,翻新会如何发挥作用。
对此有什么想法?
它赢得了出色的工作。
管道被排在地下室。 翻新池只会产生一定数量的活性胎面:
http://msdn.microsoft.com/en-us/library/0ka9477y.aspx
只能由现有记忆来限制可上下层的作业数量;然而,透镜限制了能够同时积极参与这一进程的深层。
此外,从多个透镜上写到同一档案,将会给你带来不良结果。
更不用说,如果你有所有这些read子,就更难以说明你的申请。
www.un.org/Depts/DGACM/index_spanish.htm 更简单的做法
1. 利用现有的时间,在不使用透镜的基础上建立自己的时间制度。
- Create a structure defining a countdown entry.
法典:
public class Countdown
{
public DateTime Time { get; set; }
public event Action Elapsed { get; set; }
public void RaiseElasped()
{
if(Elapsed != null)
Elapsed();
}
}
阅读你的档案并创建:Dictionary<string,countdown>
(名称->sdown)。 在你们将要采取的每一项行动中,规定相同的准则。
Create a FileSystemWatcher
to look for changes to your input file. When the file is triggered, modify the dictionary as necessary.
1. 创造一分钟的解决办法。
每当这名计时员启动时,都要在字典上检查每件物品。 如果目标时间已经过去,请打电话RaiseElapsed
。 (可能将其从独裁者中删除?)
From this point, it is hard to determine exactly what you d want to do, because you didn t describe what gets written to a file, when it happens, how often, or what happens once your countdown has elapsed. You should be able to figure out the rest yourself, though.
这种做法的好处是,单一阅读的方案更容易被 de弄,而且你获得你询问的任何问题(目前档案的存取,或太多的线索)。
The disadvantage is that it might bog down when you have a lot of entries. But if you have a lot of entries, you should really be using a database instead of of files.